Звезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активна
 

Компоненты кэширования yii 2

Компоненты кэширования

Кэширование данных опирается на компоненты кэширования, которые представляют различные хранилища, такие как память, файлы и базы данных.

Кэш-компоненты, как правило, зарегистрированы в качестве компонентов приложения, так что их можно настраивать и обращаться к ним глобально. Следующий код показывает, как настроить компонент приложения cache для использования Memcached с двумя серверами:



'components' => [
    'cache' => [
        'class' => 'yii\caching\MemCache',
        'servers' => [
            [
                'host' => 'server1',
                'port' => 11211,
                'weight' => 100,
            ],
            [
                'host' => 'server2',
                'port' => 11211,
                'weight' => 50,
            ],
        ],
    ],
],

Вы можете получить доступ к компоненту кэша, используя выражение Yii::$app->cache.

Поскольку все компоненты кэша поддерживают единый API-интерфейс - вы можете менять основной компонент кэша на другой через конфигурацию приложения. Код, использующий кэш, при этом не меняется. Например, можно изменить конфигурацию выше для использования [[yii\caching\ApcCache|APC cache]] следующим образом:

'components' => [
    'cache' => [
        'class' => 'yii\caching\ApcCache',
    ],
],

Tip: Вы можете зарегистрировать несколько кэш-компонентов приложения. Компонент с именем cache используется по умолчанию многими классами (например, [[yii\web\UrlManager]]).

  • Поддерживаемые хранилища

Поддерживаемые хранилища

Yii поддерживает множество хранилищ кэша:

  • [[yii\caching\ApcCache]]: использует расширение PHP APC. Эта опция считается самой быстрой при работе с кэшем в «толстом» централизованном приложении (т.е. один сервер, без выделенного балансировщика нагрузки и т.д.);
  • [[yii\caching\DbCache]]: использует таблицу базы данных для хранения кэшированных данных. Чтобы использовать этот кэш, вы должны создать таблицу так, как это описано в [[yii\caching\DbCache::cacheTable]];
  • [[yii\caching\DummyCache]]: является кэшем-пустышкой, не реализующим реального кэширования. Смысл этого компонента в упрощении кода, проверяющего наличие кэша. Вы можете использовать данный тип кэша и переключиться на реальное кэширование позже. Примеры: использование при разработке; если сервер не поддерживает кэш. Для извлечения данных в этом случае используется один и тот же код Yii::$app->cache->get($key). При этом можно не беспокоиться, что Yii::$app->cache может быть null;
  • [[yii\caching\FileCache]]: использует обычные файлы для хранения кэшированных данных. Замечательно подходит для кэширования больших кусков данных, таких как содержимое страницы;
  • [[yii\caching\MemCache]]: использует расширения PHP memcache и memcached. Этот вариант может рассматриваться как самый быстрый при работе в распределенных приложениях (например, с несколькими серверами, балансировкой нагрузки и так далее);
  • [[yii\redis\Cache]]: реализует компонент кэша на основе Redis, хранилища ключ-значение (требуется Redis версии 2.6.12 или выше);
  • [[yii\caching\WinCache]]: использует расширение PHP WinCache (смотрите также);
  • [[yii\caching\XCache]]: использует расширение PHP XCache;
  • [[yii\caching\ZendDataCache]]: использует Zend Data Cache.

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

Заберите ссылку на статью к себе, чтобы потом легко её найти ;)

Выберите, то, чем пользуетесь чаще всего:

Спасибо за внимание, оставайтесь на связи! Ниже ссылка на форум и обсуждение ; )


Обсудить эту статью

INFO: Вы отправляете сообщение как 'Гость'