ну там несколько вообщем то своств у этого кэширования
куда скэшировать
-В файлики
-В память
-В базу данных (бывает и такое)
-Куда то еще (есть такие выдумки огоогоо)
Что скэшировать
— Результаты выполнения запросов (Что то в моделях)
— Готовый html (Прям вместе с запросами с явскриптом и со всем всем всем)
— Вообще кэшировать можно все что угодно любой объект который поддается сериализации
Остается только разобратся в каких случаях какую комбинацию стоит применять.
Механизм кэширования достаточно простой. Неважно какой у нас dataSource у нас есть интерфейс к любому мы его и используем (Так реализованно в Zend_Cache)
есть ключ есть значение, теги и время жизни кэша
К каждой паре ключ — значение мы можем присвоить тег и определенное время жизни
Теги нужны например чтобы по ним чистить кэш. (Опять же так реазизованно в Zend_Cache)
алгоритм простой:
Смотрим по ключу есть ли такое значение в кэше если есть получаем его, если нет получаем откуда то еще и засовываем в кэш.
Ключ можно составлять по разным принципам начиная от id какого ли бо объекта или id + еще id + еще id
или вообще можно использовать хэш от sql запроса.
Прочитайте про memcache, если вам нужно что то более мелкоколиберное попробуйте APC, ну и вообще все можно в файликах хранить на всякий случай. С файликами аккуратнее у меня однажды была история когда кэш занял все дисковое пространство, в результате моей ошибки.
Вообщем такие вот дела, ничего сложного, удачи!