2.14.2.6. Настройка Redis в Laravel
Важные моменты:
- Подключаться к Redis на хостинге можно только через Unix-сокет.
- На хостинге по умолчанию доступно PECL расширение PhpRedis. Устанавливать дополнительные клиенты не требуется.
- В инструкции описан общий способ настройки Redis. Он может не подходить для сайтов, где вносились изменения в функционале работы с Redis.
Для настройки Redis в Laravel выполните следующее:
- Отредактируйте файл
.env
, расположенный в корневом каталоге проекта:- Найдите блок конфигурации Redis:
REDIS_HOST=127.0.0.1 REDIS_PASSWORD=null REDIS_PORT=6379
- Замените строки на следующие:
REDIS_HOST=/home/example/.system/redis.sock REDIS_DB=0 REDIS_CACHE_DB=1 REDIS_PREFIX=doepref_
- В строке с параметром
REDIS_HOST
вместоexample
укажите название хостинг-аккаунта, в котором размещён сайт. - В параметрах
REDIS_DB
иREDIS_CACHE_DB
укажите уникальный идентификатор базы данных Redis. - В параметре
REDIS_PREFIX
укажите необходимый префикс.
- Отредактируйте файл
database.php
, расположенный в каталогеconfig/
:- Найдите в файле код подключения к Redis, он будет начинаться с
'redis' => [
. Настройка подключения должна выглядеть примерно так:'redis' => [ 'client' => env('REDIS_CLIENT', 'phpredis'), 'options' => [ 'cluster' => env('REDIS_CLUSTER', 'redis'), 'prefix' => env('REDIS_PREFIX', Str::slug(env('APP_NAME', 'laravel'), '_').'_database_'), ], 'default' => [ 'host' => env('REDIS_HOST'), 'password' => env('REDIS_PASSWORD'), 'port' => env('REDIS_PORT'), 'database' => env('REDIS_DB', 0), ], 'cache' => [ 'host' => env('REDIS_HOST'), 'password' => env('REDIS_PASSWORD'), 'port' => env('REDIS_PORT'), 'database' => env('REDIS_CACHE_DB', 1), ], ],
- Проверьте работу Redis. Для теста отредактируйте файл
web.php
, расположенный в каталогеroutes/
, добавив в него следующий код:Route::get('redis-test', function (){ if(!Redis::get('test_time')){ Redis::set('test_time', date(DATE_RFC822)); } return "Date inserted in database: ".Redis::get('test_time'); });
Откройте ваш проект по ссылке
http://example.com/redis-test
, где вместоexample.com
укажите название вашего домена. После перехода должно выводится время первого обращения к этой ссылке.
Внимание!
Идентификатор базы данных Redis должен быть уникальным для всех CMS и для разных видов кеширования, чтобы не было ошибок с пересечением данных разных служб.