2.8.4.2.6. Налаштування Redis у Laravel

Важливі моменти:

  • Підключатися до Redis на хостингу можна тільки через Unix-сокет.
  • На хостингу за замовчуванням доступне розширення PECL PhpRedis. Встановлювати додаткові клієнти не потрібно.
  • В інструкції описано загальний спосіб налаштування Redis. Він може не підходити для сайтів, де вносилися зміни у функціонал роботи з Redis.
  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 і для різних видів кешування, щоб не було помилок з перетином даних різних служб.
Зміст

    (1)