Как правильно кэшировать редко изменяемые данные?
Кешировать стоит как раз те данные, которые постоянно нужны.
Постойте, у вас пользователь ждёт полторы секунды на загрузку каждой страницы - и не за счёт огромного количества данных, а потому, что эти данные заново собираются? Но это же RoR-приложение, самописное, я правильно понимаю? То есть у вас есть доступ к коду, который всё это показывает и к коду, который вызывается, когда транзакции добавляются? Тогда при обновлении транзакций делайте кеш для этого пользователя "протухшим", а в коде, который всё это хозяйство формирует, заново добавляйте кешированный результат в memcached и показывайте его. Тогда в следующий раз актуальный кеш будет выбран из системы кеширования, но на это потребуется в полторы тысячи раз меньше времени, а данные будут всё время актуальными.
У вас ответ в вопросе )Я не очень знаком с кэшированием 
Ознакомьтесь.
Храните данные панелей в Memcached. Показывайте "устаревшие" данные, если это не критично для приложения.
Либо подгружайте данные через ajax.