🧱 Суть

Redis можно использовать как в локальной разработке, так и в Docker.
Главное отличие – адрес подключения (REDIS_HOST).

📦 Проблема

1. Redis не установлен локально

Без запущенного Redis не будут работать очереди, кэш и сессии.

2. Разные настройки для локальной разработки и Docker

В Docker контейнеры общаются не через localhost.

✅ Решение

Использовать разные настройки для локальной разработки и Docker.

💻 Локальная разработка (WSL)

Установка Redis:

sudo apt update
sudo apt install redis-server

Запуск:

sudo service redis-server start

Проверка:

redis-cli ping
# PONG

Redis будет доступен по адресу:

127.0.0.1:6379

Особенность WSL

Redis не запускается автоматически после открытия WSL.

Запуск вручную:

sudo service redis-server start

При желании можно добавить автозапуск в ~/.bashrc:

sudo service redis-server start > /dev/null 2>&1

Настройки .env (локально)

REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
 
QUEUE_CONNECTION=redis
CACHE_STORE=redis
SESSION_DRIVER=redis

Установка клиента Redis

composer require predis/predis

Запуск очередей

php artisan queue:work

Во время разработки обычно используют два терминала:

  • php artisan serve
  • php artisan queue:work

Docker

Настройки отличаются только хостом:

# локально
REDIS_HOST=127.0.0.1
 
# Docker
REDIS_HOST=redis

Контейнеры Docker обращаются друг к другу по имени сервиса.

🎯 Вывод

  • локально Redis устанавливается и запускается в WSL
  • для Laravel достаточно настроить .env и установить predis
  • в Docker меняется только REDIS_HOST
  • при разработке обычно одновременно работают сервер Laravel и воркер очередей

🔗 Связано