发布订阅和 Stream
Redis 有两类常见消息能力:
- Pub/Sub:轻量发布订阅,消息不持久化。
- Stream:消息流,支持持久化、消费组和消息确认。
一、Pub/Sub 基本使用
订阅频道:
另一个客户端发布消息:
订阅端会收到消息。
二、Pub/Sub 特点
适合场景:
- 后台进程之间的简单通知
- WebSocket 节点广播消息
- 配置变更通知
不适合场景:
- 订单消息
- 支付回调处理
- 必须可靠消费的任务
可靠任务更适合 Stream 或专门的消息队列。
三、Stream 写入消息
写入一条消息:
* 表示由 Redis 自动生成消息 ID。
查看消息:
限制数量:
四、读取 Stream
从开头读取:
阻塞读取新消息:
含义:
五、消费组
创建消费组:
含义:
消费者读取消息:
> 表示读取消费组里还没有投递过的新消息。
确认消息:
实际消息 ID 以 XADD 返回值为准。
六、查看待确认消息
待确认消息表示已经投递给消费者,但还没有 XACK。
如果消费者宕机,消息会留在 pending 列表里,需要由恢复逻辑处理。

