← [ BACK_TO_NOTES ]

Redis Pub/Sub

Redis Pub/Sub 是面向在线订阅者的低延迟广播机制,适合跨实例通知和 wakeup;它采用瞬时投递,不应被当作 durable event log。

#concept #growing #backend #architecture #redis

[!info] related notes

Redis Pub/Sub

一句话定义

Redis Pub/Sub 让 Publisher 把消息广播给当前在线的 Subscriber,适合低延迟 fan-out / wakeup,但普通订阅者离线时不会获得历史消息,因此不具备 durable log 语义。

核心模型

Publisher
→ PUBLISH channel payload
→ Redis
→ online subscribers

Subscriber:

SUBSCRIBE channel

关键语义

  • 低延迟在线广播;
  • 支持跨进程 / 跨实例 fan-out;
  • 普通 Subscriber 离线期间会错过消息;
  • 没有 Stream 那样的历史、Pending、ACK、Consumer Group;
  • 消息丢失或重复的上层影响必须由架构决定。

适合的模式:Durable Truth + Lossy Wakeup

durable source commit
→ best-effort PUBLISH "changed"
→ subscriber wakes
→ read durable source from last known position

只把 Pub/Sub 当“唤醒信号”,即使通知丢失,也可以通过定时 reconciliation、下一条通知或重连从 durable source 补齐。

BodySense Runtime Event

PostgreSQL COMMIT runtime_event(seq=N)
→ Redis PUBLISH run:<id>
→ SSE API wakes
→ SELECT events WHERE seq > lastSeq

Redis notification 不是事件本身;PostgreSQL runtime_events 与 seq 才是 durable authority。

Commit 顺序

优先:

durable commit
→ best-effort publish

而不是先 publish 再尝试落 durable state。这样 publish 失败只损失即时唤醒,不损失事实。

与 Stream 的核心区别

Pub/Sub
→ online notification

Stream
→ retained entries + consumer progress
创建于 2026/9/18 更新于 2026/9/18
Digital Biome
Access

键盘导航

j / k / ↑ / ↓
选择对象
Enter / o
打开选择
/ 或 Ctrl+K
全站搜索
i / f / 1–4
筛选当前列表
g → h / l / p / t / a
首页 / 笔记 / 项目 / 工具 / About
r → 1–9
打开所选对象的关联
u
返回上一页
Esc
关闭浮层 / 取消命令;输入框内清空文本