## Содержание
- [Основы](#the-basics)
- [Базы данных](#database)
- [Memcached](#memcached)
- [Redis](#redis)
- [Cache Keys](#keys)
- [In-Memory Cache](#memory)
## Основы
Представьте, что ваше приложение отображает десятку самых популярных песен, за которые голосуют пользователи. Вам действительно нужно, чтобы производился поиск этих десяти песен каждый раз, когда кто-то посещает ваш сайт? Как сделать, чтобы вы могли хранить их в течение 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](http://memcached.org) - очень быстрая, свободная объектно-ориентированная кэширующая система часто используемая в том числе такими крупными сайтами, как 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](http://redis.io) - документо-ориентированное сетевое журналируемое хранилище данных типа «ключ-значение» с открытым исходным кодом.
Он часто упоминается в качестве сервера структур данных, которые могут содержать [строки](http://redis.io/topics/data-types#strings), [хэши](http://redis.io/topics/data-types#hashes), [списки](http://redis.io/topics/data-types#lists), [множества](http://redis.io/topics/data-types#sets), and [сортированные множества](http://redis.io/topics/data-types#sorted-sets).
Перед использованием вам нужно [конфигурировать ваши Redis серверы](/docs/v3/database/redis#config). После этого установите **driver** в **application/config/cache.php**:
'driver' => 'redis'
### Ключи кэша
Чтобы избежать конфликтов имен с другими приложениями при использовании APC, Redis или Memcached серверов, Laravel добавляет **key** для каждого элемента, хранящегося в кэш с помощью этих драйверов.Вы можете изменить это значение:
'key' => 'laravel'
### Кэширование в памяти
"Memory" драйвер на самом деле не кэширует все на диск. Он просто поддерживает внутренний массив данных кэша для текущего запроса. Это делает его идеальным для модульного тестирования приложения в отрыве от любого механизма хранения. Этот способ кэшировния никогда не следует использовать в качестве реального кэш-драйвера.