首页/数据/Redis 进阶速查/Pub/Sub 与 Stream:消息语义对比
本包目录(421 条)
数据结构与选型42 条
持久化56 条主从与哨兵51 条Cluster 集群44 条内存与管理99 条性能与排障129 条

Pub/Sub 与 Stream:消息语义对比

Pub/Sub 是即发即忘的广播,订阅者掉线消息即丢;Stream 持久化每条消息、支持消费组与确认重投,二者按可靠性要求选择。

Redis 进阶速查数据更新于 2026-10-12

语义对比

维度Pub/SubStream
消息持久化无,仅当时在线可收持久保存,可回溯
消费组不支持,所有订阅者都收到支持,组内竞争消费
确认重投无PEL 加 XACK 加 XCLAIM
堆积能力客户端慢可能被输出缓冲限制断开服务端存储,按 MAXLEN 控制
典型场景配置广播、缓存失效通知订单事件、任务队列

示例

示例
redis-cli SUBSCRIBE config:updates
redis-cli PUBLISH config:updates reload
redis-cli XADD events '*' type order-created id 1001
集群模式下普通 Pub/Sub 是全局广播;7.0 起的分片 Pub/Sub(SSUBSCRIBE/SPUBLISH)把消息限定到槽位所在分片。

易错点

  • 把 Pub/Sub 当可靠队列用是常见事故:消费者重启期间消息永久丢失
  • Stream 消费组不 ACK 会让 PEL 持续增长,与内存增长直接相关

数据来源与参考

  • Redis 官方文档:Pub/Sub 与 Streams 数据类型
  • Redis 7.0 Release Notes:Sharded Pub/Sub
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌