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 і для різних видів кешування, щоб не було помилок з перетином даних різних служб.