Содержание
Основы
Представьте, что ваше приложение отображает десятку самых популярных песен, за которые голосуют пользователи. Вам действительно нужно, чтобы производился поиск этих десяти песен каждый раз, когда кто-то посещает ваш сайт? Как сделать, чтобы вы могли хранить их в течение 10 минут или даже час, что позволяет значительно ускорить ваше приложение? Кэширование Laravel делает это простым.
Laravel пять кэш драйверов из коробки:
- File System
- Database
- Memcached
- APC
- Redis
- Memory (Arrays)
По умолчанию, Laravel сконфигурирован для использования file системного кэш драйвера (хранение кэша в файлах). Этот драйвер включен по умолчанию и не требует дополнительного конфигурирования. Файловый драйвер сохраняет кешируемую информацию в виде файлов в cache директории. Если вас устраивает этот драйвер, больше вам делать ничего не нужно. Все готово к использованию.
Примечание: Перед использованием файлового кэша убедитесь, что директория storage/cache имеет права на запись.
База данных
Драйвер базы данных использует таблицу базы данных в виде простого хранилища ключ-значение. Для включения этого способа кэширования, сначала установите имя таблицы в application/config/cache.php:
'database' => array('table' => 'laravel_cache'),
Затем, создайте таблицу в вашей базе данных. Таблица должна иметь три поля:
- key (varchar)
- value (text)
- expiration (integer)
Это все. Как только ваша конфигурация и таблица определены, вы готовы к работе!
Memcached
Memcached - очень быстрая, свободная объектно-ориентированная кэширующая система часто используемая в том числе такими крупными сайтами, как Wikipedia и Facebook. Перед использованием этой системы в Laravel вам необходимо убедиться, что Memcached, как расширение PHP, установлен на вашем сервере.
Если Memcached установлен, просто установите driver в application/config/cache.php файле:
'driver' => 'memcached'
Затем, добавьте ваши Memcached серверы в servers массив:
'servers' => array(
array('host' => '127.0.0.1', 'port' => 11211, 'weight' => 100),
)
Redis
Redis - документо-ориентированное сетевое журналируемое хранилище данных типа «ключ-значение» с открытым исходным кодом. Он часто упоминается в качестве сервера структур данных, которые могут содержать строки, хэши, списки, множества, and сортированные множества.
Перед использованием вам нужно конфигурировать ваши Redis серверы. После этого установите driver в application/config/cache.php:
'driver' => 'redis'
Ключи кэша
Чтобы избежать конфликтов имен с другими приложениями при использовании APC, Redis или Memcached серверов, Laravel добавляет key для каждого элемента, хранящегося в кэш с помощью этих драйверов.Вы можете изменить это значение:
'key' => 'laravel'
Кэширование в памяти
"Memory" драйвер на самом деле не кэширует все на диск. Он просто поддерживает внутренний массив данных кэша для текущего запроса. Это делает его идеальным для модульного тестирования приложения в отрыве от любого механизма хранения. Этот способ кэшировния никогда не следует использовать в качестве реального кэш-драйвера.