这门课解决什么工作场景
很多做业务开发的后端程序员都遇到过类似场景:用户注册后要发邮件、下单后指定时间未支付要自动关单、某个接口频繁报错需要暂时熔断降级。如果直接把发邮件、关单的逻辑塞进主流程,一旦下游服务变慢,主业务接口也会跟着阻塞甚至超时。这门课的主题就是用 Redis 把这些耗时的、可异步的、需要定时触发的逻辑剥离出来,做成消息队列。它不教你搭建 Kafka 或 RabbitMQ 这样的重型中间件,而是聚焦在中小体量项目里,怎么用团队已经在用的 Redis 快速实现轻量级队列、延迟队列和简易熔断器。对于没有专职运维、不想为了一个异步任务额外引入一套中间件的小团队来说,这种方案很务实。
适合什么基础与建议先看的模块
这套资料适合已经能熟练写后端接口、清楚增删改查逻辑,但对 Redis 的认知还停留在做缓存阶段的开发者。课程演示用的是 PHP,但核心是 Redis 的数据结构和命令交互逻辑,用 Go 或 Java 的人看懂思路后也能直接平移。建议先看第一讲,理解用 list 类型实现最基础队列的原理,建立对生产者和消费者模型的基本认知。接着直接跳到第四讲的订单未支付自动关闭,这是日常工作里最高频的延迟队列场景,看完这一节你能立刻明白延迟队列的运转机制。看完这两个核心场景后,再去过第五到第七讲的简易熔断器实现,这部分讲的是接口保护机制,逻辑稍微绕一些,放在后面看比较合适。
资料怎么配合练习与学完能做什么
这套资料的核心价值在于演示了业务异常时的处理思路,而不是单纯念命令文档。在看消费者异常补救方案和熔断器半开状态切换这几节时,建议你自己本地起一个 Redis 实例,跟着把生产者投递、消费者拉取、异常重试的代码敲一遍。不要只看视频,自己动手时才会发现消费者挂掉后消息丢失、或者延迟队列时间计算偏差等实际坑点。学完这套资料,你能够独立在业务系统里设计一套异步处理机制:比如把注册后的欢迎邮件改成异步投递,把订单超时关闭改成延迟任务自动触发,或者在调用第三方接口时加一层简单的熔断保护。当产品再提出这类非核心链路的异步需求时,你不用再去网上零散找方案,而是能有一套自己掌握的、可直接落地的代码骨架。
本课程是《redis业务实战系列》的第二篇(上一篇是缓存篇)。这一篇我们从消息队列角度来讲解下redis的使用场景,演示语言依然是PHP7.x(语言不是重点,关
课程目录
* 第1讲:消息队列作用、list类型实现最简单的队列
* 第2讲:list消息队列(2):消费者出现异常时的补救方案
* 第3讲:构建延迟队列:新闻延迟发布示例
* 第4讲:延迟队列练习:订单指定时间未支付自动关闭
* 第5讲:结合redis实现简易熔断器(1):雏形、实现基本的函数降级
* 第6讲:结合redis实现简易熔断器(2):使用延时队列实现熔断器开关状态切换
* 第7讲:结合redis实现简易熔断器(3):实现半开状态的函数调用和切换
* 第8讲:redis5 Stream类型:消息队列命令入门
* 第9讲:redis5 Stream类型(2) : phpredis模拟用户注册消息队列发送邮件
* 第10讲:redis5 Stream类型(3):异常处理、xpending读取未处理消息
* 第11讲:redis5 Stream类型(4) : 手动更改消息所有者
* 第12讲:redis5 Stream类型(5):建立消息处理发送异常后的重试机制
* 第13讲:附加课(1):swoole下使用Redis、docker部署套路
* 第14讲:附加课:使用swoole监听Stream队列(异步和协程两种方式)
* 第15讲:附加课:swoole协程监听Stream多任务队列、串行方式






