Обзор компонентов кэширования в Yii framework 2
Думаю, ни для кого не секрет, что Yii2 предоставляет достаточно широкий выбор вариантов кэширования данных через различные хранилища. О них сегодня и поговорим.
Для начала посмотрим на список доступных
- ApcCache
- ArrayCache
- DbCache
- DummyCache
- FileCache
- MemCache
- WinCache
- XCache
- ZendDataCache
Начну с самого "бесполезного" провайдера кэширования - это DummyCache
. Он ничего не сохраняет и ничего не возвращает. Это обычная заглушка, кэш вроде бы и есть и одновременно его нет. Бывает очень полезен при отладке приложений.
Следующий на очереди ArrayCache
. Он работает по принципу Identity map
, просто складывает данные в массив по ключу. Данные он хранит только в рамках одного запроса. Как правило, он используется в тестах, но иногда бывает полезен и в процессе разработки.
FileCache
один из самых популярных. Обычно его используют для хранения блоков html или для абсолютно всего в рамках небольших и не сильно нагруженных проектах. Советую прочитать про особенности хранения данных в FileCache.
DbCache
, как понятно из названия, хранит все данные в базе данных. О его полезности много споров, но есть случаи, когда его применение бывает уместным и когда нет.
Закончу обзор сразу несколькими компонентами, а именно ApcCache
, MemCache
, WinCache
, XCache
и ZendDataCache
. Все они являются "посредниками" между Yii2 и соответствующими хранилищами.
Из них наиболее часто используется MemCache
. Он отлично подходит для хранения состояний или ключей TagDependency
. Я в нем храню все, что нужно получать часто и быстро. Не рекомендую хранить в нем большие объемы информации, если у вашего сервера не слишком много оперативной памяти.