Redis发布订阅

Redis 发布订阅 (pub/sub) 是一种消息通信模式:发送者 (pub) 发送消息,订阅者 (sub) 接收消息。
  • 客户端可以订阅一个或者多个频道,从而成为这些频道的订阅者,每当有其他客户端向被订阅的频道发送消息时,频道的订阅者都会收到这条消息。
  • 举例说明:

订阅给定的一个或多个频道的信息。
SUBSCRIBE channel [channel …]

将信息发送到指定的频道。
PUBLISH channel message

#####--客户端1
127.0.0.1:6379> subscribe daily  #订阅 daily 消息
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "daily"
3) (integer) 1
#####--客户端2 
127.0.0.1:6379> publish daily "Redis publish is test" # 发布 daily消息
(integer) 1
#####--客户端1将会收到-客户端2 发布的最新 daily 消息
127.0.0.1:6379> subscribe daily
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "daily"
3) (integer) 1
1) "message"
2) "daily"
3) "Redis publish is test"

订阅一个或多个符合给定模式的频道。
PSUBSCRIBE pattern [pattern …]

127.0.0.1:6379> psubscribe daily* #匹配所有daily打头的频道
Reading messages... (press Ctrl-C to quit)
1) "psubscribe"
2) "daily*"
3) (integer) 1

取消订阅指定的频道, 如果不指定频道,则会取消订阅所有频道
UNSUBSCRIBE [channel [channel …]]

127.0.0.1:6379> unsubscribe daily
1) "unsubscribe"
2) "daily"
3) (integer) 0

查看订阅与发布系统状态。
PUBSUB subcommand [argument [argument …]]

#PUBSUB CHANNELS [pattern]
#列出当前的活跃频道。
127.0.0.1:6379> pubsub channels  # 列出所有
1) "daily"
2) "daily123"
3) "other"
127.0.0.1:6379> pubsub channels dail* #列出指定规则的活跃频道
1) "daily"
2) "daily123"
#PUBSUB NUMSUB [channel-1 ... channel-N]¶
#返回给定频道的订阅者数量, 订阅模式的客户端不计算在内。
127.0.0.1:6379> pubsub numsub daily daily123
1) "daily"
2) (integer) 1
3) "daily123"
4) (integer) 1
#PUBSUB NUMPAT 返回订阅模式的数量。
# 这个命令返回的不是订阅模式的客户端的数量,而是客户端订阅的所有模式的数量总和。
127.0.0.1:6379> psubscribe dai* #增加一个订阅模式
Reading messages... (press Ctrl-C to quit)
1) "psubscribe"
2) "dai*"
3) (integer) 1
127.0.0.1:6379> pubsub numpat #获取订阅模式数量
(integer) 1

退订指定的规则, 如果没有参数则会退订所有规则
PUNSUBSCRIBE [pattern [pattern …]]

127.0.0.1:6379> punsubscribe daily
1) "punsubscribe"
2) "daily"
3) (integer) 0
上一篇:expdp报错,UDE-00014: invalid value for parameter, 'exclude'.


下一篇:Python_包