Redis提供了基于“发布订阅”模式的消息机制,此种模式下,消息发布者和订阅者不进行直接通信,发布者客户端向指定的频道(channel)发布消息,订阅该频道的每个客户都可以收到该消息
命令; publish channel message
publish channel1 message2
Redis客户端可以订阅多个频道的消息
命令:subscribe channel[channel…]
10.3.34.101:6378> subscribe channelchanndl1
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "channel"
3) (integer) 1
1) "subscribe"
2) "channdl1"
3) (integer) 2
1) "message"
2) "channdl1"
3) "message2"
命令:unsubscribe channel[channel…]
例如:
10.3.34.101:6378> unsubscribe channdl1
1) "unsubscribe"
2) "channdl1"
3) (integer) 0
命令:psubscribe patten[pattern…]
例如:
10.3.34.101:6378> psubscribe cha*
Reading messages... (press Ctrl-C to quit)
1) "psubscribe"
2) "cha*"
3) (integer) 1
1) "pmessage"
2) "cha*"
3) "cha1"
4) "dd"
命令:punsubscribe [patten[pattern…]]
活跃频道是指至少有一个订阅者的频道
命令:pubsub channels[pattern
例如:
10.3.34.101:6378> pubsub channels
1) "channel1"
命令:pubsub numsub [channel…]
例如:
10.3.34.101:6378> pubsub numsub channel1
1) "channel1"
2) (integer) 2
命令:pubsub numpat
例如:
客户端1:
10.3.34.101:6378> psubscribe pcha
Reading messages... (press Ctrl-C to quit)
1) "psubscribe"
2) "pcha"
3) (integer) 1
客户端2:
10.3.34.101:6378> psubscribe pcha
Reading messages... (press Ctrl-C to quit)
1) "psubscribe"
2) "pcha"
3) (integer) 1
客户端3:
10.3.34.101:6378> pubsub numpat
(integer) 2
聊天室,公告牌,服务之间利用消息解耦都可以使用发布订阅模式