laragon中配laravel队列用redis需三步:启动laragon redis并验证、配置.env和database.php指向127.0.0.1:6379、运行php artisan queue:work redis --queue=local:emails监听。

在 Laragon 环境中配 Laravel 队列用 Redis 驱动,核心是让本地开发环境的 Redis 服务、PHP 扩展、Laravel 配置三者对齐,再启动稳定监听。Laragon 自带 Redis 和 PHP,但默认不启用或未配置队列专用参数,需手动打通。
确认 Laragon 的 Redis 已启动并可访问
Laragon 默认安装 Redis,但可能未运行。打开 Laragon 主界面 → 点击左上角 Redis 按钮,确保状态为绿色“Running”。若未启动,点击启动;若报错,检查端口是否被占用(默认 6379)。
终端中执行验证命令:
-
redis-cli ping—— 应返回 PONG -
php -m | grep redis—— 若无输出,说明 PHP 未加载 redis 扩展;Laragon 通常预装 phpredis,但需确认php.ini中已启用:extension=redis(路径一般为C:\laragon\bin\php\php-{version}\php.ini)
配置 Laravel 使用 Laragon 的 Redis
修改项目根目录下的 .env 文件,明确指向 Laragon 提供的服务:
QUEUE_CONNECTION=redis-
REDIS_HOST=127.0.0.1(不用 localhost,避免 DNS 解析延迟) REDIS_PORT=6379-
REDIS_PASSWORD=null(Laragon 默认无密码;若设为空字符串"",会导致认证失败) -
REDIS_CLIENT=phpredis(显式声明,避免 Laravel fallback 到未安装的 predis)
接着检查 config/database.php 中 redis 的 default 连接块,确保与上述一致,且 'database' => 1(推荐单独用 db1 存队列,避免和缓存共用 db0)。
设置队列名并创建可分发任务
打开 config/queue.php,找到 redis 配置段,把 'queue' 改为带命名空间的值,例如:
-
'queue' => 'local:emails'—— 避免和未来生产环境队列冲突
创建任务类:
php artisan make:job SendWelcomeEmail- 打开
app/Jobs/SendWelcomeEmail.php,确认类 implements ShouldQueue - 在控制器中调用:
dispatch(new SendWelcomeEmail($user));
别忘了清配置缓存:php artisan config:clear(改了 .env 后必须执行)。
启动监听并验证是否生效
在项目根目录终端运行:
-
php artisan queue:work redis --queue=local:emails --verbose(必须显式写redis,否则 fallback 到 sync) - 触发一次任务分发(如注册用户),观察终端是否输出 Processing 或 Processed
如看到日志但无反应,用 redis-cli llen queues:local:emails 查看队列长度,非零说明任务已入队,问题出在 worker 连接或处理逻辑。
开发阶段可用此命令临时监听;上线前务必换成 Supervisor 守护,但 Laragon 本身不内置 Supervisor,建议用 Windows Task Scheduler 或切换到 WSL 部署生产级守护。











