Вы верно мыслите. Обычно в кэш кладут часто используемые данные, и данные, которые являются результатом вычислений (или запросы к сторонним API), которые значительно влияют на скорость работы сайта. Чтение известного файла из файловой системы или данных из памяти в большинстве случаев быстрее выборки из БД, хотя она часто используемые запросы кэширует сама.
Кэш страниц целиком имеет смысл для сайтов где содержимое меняется редко, чаще кэшируют определённые данные.
Для хранения кэша используют файловую систему, APC, Memcached