Redis发布订阅(pub/sub)
订阅,取消订阅和发布实现了发布/订阅消息范式(引自wikipedia),发送者(发布者)不是计划发送消息给特定的接收者(订阅者)。而是发布的消息分到不同的频道,不需要知道什么样的订阅者订阅。订阅者对一个或多个频道感兴趣,只需接收感兴趣的消息,不需要知道什么样的发布者发布的。这种发布者和订阅者的解耦合可以带来更大的扩展性和更加动态的网络拓扑。
举个例子:
我们在第一个客户端中订阅一个叫CCTV的频道
127.0.0.1:6379> SUBSCRIBE CCTV
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "CCTV"
3) (integer) 1
重启一个新的客户端,也订阅这个频道
127.0.0.1:6379> SUBSCRIBE CCTV
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "CCTV"
3) (integer) 1
再重启一个新的客户端,用来发布消息,其他订阅了的客户端便可接收到消息
#此为发布者发布的第一条消息
127.0.0.1:6379> PUBLISH CCTV "hello"
(integer) 2
127.0.0.1:6379>
#订阅的两个客户端都可以接收到消息
#客户端1
127.0.0.1:6379> SUBSCRIBE CCTV
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "CCTV"
3) (integer) 1
1) "message"
2) "CCTV"
3) "hello"
#客户端2
127.0.0.1:6379> SUBSCRIBE CCTV
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "CCTV"
3) (integer) 1
1) "message"
2) "CCTV"
3) "hello"