Кэширование нужно использовать не всегда. Кэширование лучше использовать для данных, которые не меняются слишком быстро. Например - можно закэшировать список лучших статей недели - для пользователей это будет очень удобно, ведь список этот не будет меняться целую неделю. И в то же время кэшировать последние пять комментариев на самом активном форуме - согласитесь, не лучшее решение - так как эти данные могут меняться каждые пять минут. В некоторых случаях ненужного использования кэширования Вы можете "благодаря" кэшу ещё и увеличить нагрузку на сайт, сделав его скорее медленнее, а не быстрее (что, собственно говоря, и является изначальной целью кэширования - то есть, сделать быстрее).
Как работает кэширование
Модулям зачастую приходится делать частые и весьма "тяжеловесные" запросы к базе, или же обращаться за данными на отдалённые серверы - как Вы понимаете, нет смысла каждый раз, когда Вам нужны одни и те же данные, использовать все эти ресурсы. Лучше хранить кэш со своими данными в одной из таблиц БД, зарезервированных специально для этого в БД Друпала. Или можно создать для каждого модуля свою отдельную таблицу, и складывать закэшированные данные туда. И в следующий раз, когда данные понадобятся, можно быстренько их получить одним-единственным запросом к этой табличке.
Таблица, которую Ваш модуль может по умолчанию использовать для закэшированных данных, называется cache. Её лучше использовать в тех случаях, когда вы собираетесь использовать немного закэшированной информации; но если же вы кэшируете информацию для каждой ноды, пункта меню или пользователя - то лучше создавать свои собственные таблицы и складывать эти данные туда. Если создаёте для кэша свою таблицу, то структуру этой таблицы нужно делать идентичной структуре таблицы cache. Отличное решение - использовать префикс cache_ для каждой такой таблицы: например, cache_node - и т.д.
Структура таблицы cache:
Field* Type Null Default
cid varchar(255) NO —
data longblob YES —
expire int NO 0
created int NO 0
headers text YES NULL
serialized smallint NO 0
Field - первичный ключ таблицы.