Советы PHP-разработчика

Блог содержащий короткие заметки касающиеся программирования для web.

Обзор компонентов кэширования в Yii framework 2

Обзор компонентов кэширования в 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. Я в нем храню все, что нужно получать часто и быстро. Не рекомендую хранить в нем большие объемы информации, если у вашего сервера не слишком много оперативной памяти.

  • 2016-03-24 21:31:52