## Содержание - [Основы](#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" драйвер на самом деле не кэширует все на диск. Он просто поддерживает внутренний массив данных кэша для текущего запроса. Это делает его идеальным для модульного тестирования приложения в отрыве от любого механизма хранения. Этот способ кэшировния никогда не следует использовать в качестве реального кэш-драйвера.