2.14.2.6. Настройка Redis в Laravel

Важные моменты:

  • Подключаться к Redis на хостинге можно только через Unix-сокет.
  • На хостинге по умолчанию доступно PECL расширение PhpRedis. Устанавливать дополнительные клиенты не требуется.
  • В инструкции описан общий способ настройки Redis. Он может не подходить для сайтов, где вносились изменения в функционале работы с Redis.

Для настройки Redis в Laravel выполните следующее:

  1. Отредактируйте файл .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 укажите необходимый префикс.
  2. Отредактируйте файл 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),
              ],
       
          ],
  3. Проверьте работу 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 и для разных видов кеширования, чтобы не было ошибок с пересечением данных разных служб.

Содержание