🧱 Суть
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
# PONGRedis будет доступен по адресу:
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 servephp artisan queue:work
Docker
Настройки отличаются только хостом:
# локально
REDIS_HOST=127.0.0.1
# Docker
REDIS_HOST=redisКонтейнеры Docker обращаются друг к другу по имени сервиса.
🎯 Вывод
- локально Redis устанавливается и запускается в WSL
- для Laravel достаточно настроить
.envи установитьpredis - в Docker меняется только
REDIS_HOST - при разработке обычно одновременно работают сервер Laravel и воркер очередей