命令介绍
Pub/Sub 族命令用于实现发布/订阅消息模式,在生产者与消费者之间建立实时的消息通道。该模型适用于实时通知、聊天消息广播、配置变更推送等场景。其核心命令按功能可分为以下三类:
频道订阅与退订
SUBSCRIBE / UNSUBSCRIBE:按频道名称精确订阅或退订一个或多个频道。
PSUBSCRIBE / PUNSUBSCRIBE:通过通配符模式(如
news.*)批量订阅或退订匹配的频道。消息发布
PUBLISH:将消息发布到指定频道,所有已订阅该频道的客户端将即时收到推送。
频道状态查询
PUBSUB CHANNELS / PUBSUB NUMSUB / PUBSUB NUMPAT:查询当前活跃频道列表、指定频道的订阅者数量、活跃模式订阅数量,用于监控和运维。
说明:
命令支持概览
基础命令:
psubscribe、pubsub、publish、punsubscribe、subscribe、unsubscribe 在 Redis 2.8 标准架构及4.0、5.0、6.2、7.0版本、Valkey 8.0、9.0的标准架构与集群架构中均完全支持。跨 Slot 限制:Pub/Sub 族命令不存在跨 Slot 访问场景。
命令兼容性矩阵
Pub/Sub 族命令在各版本与架构下的支持情况如下表所示(✓ 表示支持,✗ 表示不支持,— 表示该命令不存在跨 Slot 访问场景)。
命令 | Valkey 9.0标准架构 | Valkey 9.0集群架构 | Redis 7.0/Valkey 8.0标准架构 | Redis 7.0/Valkey 8.0集群架构 | Redis 6.2标准架构 | Redis 6.2集群架构 | Redis 5.0标准架构 | Redis 5.0集群架构 | Redis 4.0标准架构 | Redis 4.0集群架构 | Redis 2.8标准架构 | 集群架构跨 Slot 支持 |
psubscribe | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — |
pubsub | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — |
publish | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — |
punsubscribe | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — |
subscribe | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — |
unsubscribe | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — |