*SPUBLISH 命令

在 Sharded Pub/Sub 中发布消息到指定频道。Redis 7.0+ 引入,替代普通 Pub/Sub 在 Cluster 模式下的使用。


*语法

SPUBLISH channel message

*参数说明

参数 类型 必填 说明
channel String 频道名称
message String 消息内容

*返回值

条件 返回值
成功 接收消息的客户端数量(Integer)

*时间复杂度

O(N),N 为订阅该频道的客户端数量。


*示例

> SPUBLISH orders "new order #12345"
(integer) 2

*常见错误

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

*最佳实践

  1. Cluster 模式消息发布:Redis Cluster 中使用 SPUBLISH 替代 PUBLISH,消息通过槽位路由到正确的节点。

*FAQ

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

Q: SPUBLISH 的频道和 key 槽位有什么关系? A: SPUBLISH 的频道通过槽位计算路由到特定节点,和普通 key 使用相同的槽位算法。