*SSUBSCRIBE 命令

在 Sharded Pub/Sub 中订阅一个或多个频道。Redis 7.0+ 引入。


*语法

SSUBSCRIBE channel [channel ...]

*参数说明

参数 类型 必填 说明
channel String 频道名称,可订阅多个

*返回值

进入订阅模式,持续接收消息。每条订阅确认返回 ["ssubscribe", channel, count]


*时间复杂度

O(N),N 为订阅的频道数量。


*示例

> SSUBSCRIBE orders notifications
Reading messages... (press Ctrl-C to quit)
1) "ssubscribe"
2) "orders"
3) (integer) 1
1) "ssubscribe"
2) "notifications"
3) (integer) 2

# 收到消息
1) "smessage"
2) "orders"
3) "new order #12345"

*常见错误

  1. Cluster 模式下使用 SUBSCRIBE:在 Cluster 中应使用 SSUBSCRIBE,SUBSCRIBE 只在单机模式下有效。

*最佳实践

  1. Cluster 模式订阅:Redis Cluster 中使用 SSUBSCRIBE 替代 SUBSCRIBE,频道通过槽位路由。

*FAQ

Q: SSUBSCRIBE 和 SUBSCRIBE 有什么区别? A: SSUBSCRIBE 是 Sharded Pub/Sub,频道通过槽位路由,适合 Cluster 模式;SUBSCRIBE 是普通 Pub/Sub,消息广播到所有节点。Cluster 模式下优先使用 SSUBSCRIBE。

Q: SSUBSCRIBE 支持模式匹配吗? A: 不支持。Sharded Pub/Sub 只支持精确频道匹配,不支持 PSUBSCRIBE 式的模式匹配。