信息发布→ 登录 注册 退出

Laravel队列由Redis驱动怎么配置_Laravel Redis队列使用教程

发布时间:2025-12-20

点击量:
首先安装并配置Redis扩展,然后在.env文件中将队列驱动设为redis,接着确认config/queue.php中的redis连接配置正确,之后创建任务类并通过dispatch分发,最后启动php artisan queue:work监听处理任务。

Laravel 使用 Redis 作为队列驱动非常常见,尤其适合高并发场景。配置过程简单,只需几个步骤即可让 Laravel 队列通过 Redis 高效运行。

1. 安装并配置 Redis 扩展

确保你的 PHP 环境已安装 Redis 扩展,Laravel 通过 predis/predisphpredis 与 Redis 通信。推荐使用 Composer 安装 predis:

composer require predis/predis

如果你使用 phpredis 扩展,需确保已在 php.ini 中启用 extension=redis

2. 配置 .env 文件使用 Redis 队列驱动

打开项目根目录下的 .env 文件,修改队列驱动为 redis:

QUEUE_CONNECTION=redis

同时确认 Redis 连接信息正确(默认使用 default 连接):

REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379

3. 修改 queue.php 配置文件

打开 config/queue.php,找到 redis 驱动配置项,通常如下:

'redis' => [
'driver' => 'redis',
'connection' => 'default',
'queue' => env('REDIS_QUEUE', 'default'),
'retry_after' => 90,
'block_for' => null,
],

其中:

  • connection:指 config/database.php 中 Redis 的连接名称
  • queue:任务存入的 Redis 队列名,可自定义
  • retry_after:任务执行超时时间(秒),超时后将重试
  • block_for:阻塞等待新任务的时间,设为 null 表示持续阻塞

4. 创建队列任务并推送到 Redis

使用 Artisan 命令创建任务类:

php artisan make:job SendEmailJob

在控制器或路由中分发任务:

use App\Jobs\SendEmailJob;

dispatch(new SendEmailJob());

该任务会被序列化并写入 Redis 的指定队列中(如:queues:default)。

5. 启动队列监听器

运行以下命令启动消费者监听 Redis 队列:

php artisan queue:work --queue=default

如需自动重启(开发环境推荐):

php artisan queue:listen

生产环境建议配合 Supervisor 守护进程,防止中断。

基本上就这些。配置完成后,Laravel 会通过 Redis 高效处理异步任务,提升应用响应速度和稳定性。不复杂但容易忽略的是 retry_after 设置和 Redis 连接状态检查。

标签:# 并发  # 如需  # 后将  # 已在  # 自定义  # 推荐使用  # 只需  # 如果你  # 的是  # 设为  # database  # 异步  # default  # php  # require  # NULL  # 开发环境  # 异步任务  # 配置文件  # 路由  # ai  # app  # composer  # redis  # laravel  # word  
在线客服
服务热线

服务热线

4008888355

微信咨询
二维码
返回顶部
×二维码

截屏,微信识别二维码

打开微信

微信号已复制,请打开微信添加咨询详情!