Redis 发布订阅模式
概述
Redis 的发布/订阅是一种消息通信模式:发送者(Pub)向频道(Channel)发送消息,订阅者(Sub)接收频道上的消息。Redis 客户端可以订阅任意数量的频道,发送者也可以向任意频道发送数据。在发送者向频道发送一条消息后,这条消息就会被发送到订阅该频道的客户端(Sub)
Redis 有两种发布/订阅模式:
- 基于频道(Channel)的发布/订阅
- 基于模式(Pattern)的发布/订阅
Redis 常用发布订阅模式命令如下:
- subscribe channel [channel ...]:订阅给定的一个或多个频道
- unsubscribe channel [channel ...]:退订给定的频道,若没有指定 channel,则默认退订所有频道
- publish channel message:将消息发送给指定频道 channel,返回结果接收到信息的订阅者数量,无订阅者返回 0
- pubsub channels [argument [atgument ...]]:查看订阅与发布系统的状态,返回活跃频道列表(即至少有一个订阅者的频道)
- psubscribe pattern1 [pattern...]:订阅一个或多个符合给定模式的频道,每个模式以 * 作为匹配符,例如
cn*
匹配所有以 cn 开头的频道:cn.aaa
、cn.bbb
- punsubscribe [pattern [pattern ...]]:退订所有给定模式的频道,pattern 未指定,则订阅的所有模式都会被退订