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

发布时间 - 2025-12-20 00:00:00    点击率:
首先安装并配置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 连接状态检查。


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


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: ChatGPT 4.0官网入口地址 ChatGPT在线体验官网  简历没回改:利用AI润色让你的文字更专业  如何在阿里云高效完成企业建站全流程?  百度浏览器网页无法复制文字怎么办 百度浏览器复制修复  Android利用动画实现背景逐渐变暗  JavaScript如何实现类型判断_typeof和instanceof有什么区别  香港服务器网站推广:SEO优化与外贸独立站搭建策略  Win11搜索栏无法输入_解决Win11开始菜单搜索没反应问题【技巧】  Laravel用户认证怎么做_Laravel Breeze脚手架快速实现登录注册功能  制作无缝贴图网站有哪些,3dmax无缝贴图怎么调?  北京网页设计制作网站有哪些,继续教育自动播放怎么设置?  标题:Vue + Vuex + JWT 身份认证的正确实践与常见误区解析  如何制作一个表白网站视频,关于勇敢表白的小标题?  Laravel怎么在Controller之外的地方验证数据  android nfc常用标签读取总结  Laravel怎么返回JSON格式数据_Laravel API资源Response响应格式化【技巧】  ,南京靠谱的征婚网站?  Python面向对象测试方法_mock解析【教程】  详解CentOS6.5 安装 MySQL5.1.71的方法  JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)  图片制作网站免费软件,有没有免费的网站或软件可以将图片批量转为A4大小的pdf?  如何基于PHP生成高效IDC网络公司建站源码?  Laravel怎么使用Blade模板引擎_Laravel模板继承与Component组件复用【手册】  头像制作网站在线观看,除了站酷,还有哪些比较好的设计网站?  如何在企业微信快速生成手机电脑官网?  Laravel如何使用Gate和Policy进行权限控制_Laravel权限判定与策略规则配置  Laravel中DTO是什么概念_在Laravel项目中使用数据传输对象(DTO)  linux top下的 minerd 木马清除方法  html5怎么画眼睛_HT5用Canvas或SVG画眼球瞳孔加JS控制动态【绘制】  如何在阿里云域名上完成建站全流程?  Laravel中间件起什么作用_Laravel Middleware请求生命周期与自定义详解  Laravel如何编写单元测试和功能测试?(PHPUnit示例)  Laravel如何使用模型观察者?(Observer代码示例)  Laravel Eloquent性能优化技巧_Laravel N+1查询问题解决  Laravel Octane如何提升性能_使用Laravel Octane加速你的应用  Windows Hello人脸识别突然无法使用  宙斯浏览器怎么屏蔽图片浏览 节省手机流量使用设置方法  如何选择PHP开源工具快速搭建网站?  QQ浏览器网页版登录入口 个人中心在线进入  Linux系统命令中tree命令详解  如何在阿里云购买域名并搭建网站?  googleplay官方入口在哪里_Google Play官方商店快速入口指南  Internet Explorer官网直接进入 IE浏览器在线体验版网址  香港服务器网站生成指南:免费资源整合与高速稳定配置方案  Google浏览器为什么这么卡 Google浏览器提速优化设置步骤【方法】  BootStrap整体框架之基础布局组件  手机网站制作平台,手机靓号代理商怎么制作属于自己的手机靓号网站?  如何确保西部建站助手FTP传输的安全性?  如何快速建站并高效导出源代码?  打造顶配客厅影院,这份100寸电视推荐名单请查收