*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"
*常见错误
- Cluster 模式下使用 SUBSCRIBE:在 Cluster 中应使用 SSUBSCRIBE,SUBSCRIBE 只在单机模式下有效。
*最佳实践
- 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 式的模式匹配。