日期:2014-05-16  浏览次数:20509 次

07_Redis_订阅与发布

Redis的订阅与发布

Redis 的 SUBSCRIBE 命令可以让客户端订阅任意数量的频道, 每当有新信息发送到被订阅的频道时, 信息就会被发送给所有订阅指定频道的客户端。
作为例子, 下图展示了频道 channel1 , 以及订阅这个频道的三个客户端 —— client2 、 client5 和 client1 之间的关系:



?当有新消息通过 PUBLISH 命令发送给频道 channel1 时, 这个消息就会被发送给订阅它的三个客户端:



?上面描述了订阅与发布的关系。

现在我们使用几个客户端来模拟一下redis的订阅与发布

客户端一:

客户端二:

客户端三:

?现在看一下每一个订阅者受到的消息:


订阅者返回的数据说明:

redis 127.0.0.1:6379> SUBSCRIBE tv
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "tv"
3) (integer) 1

?命令:subscribe tv 表示订阅了tv这个频道。

返回的三行记录表示:表示当前客户端成功地订阅了信息第二个元素所指示的频道。而信息的第三个元素则记录了目前客户端已订阅频道的总数。

发布消息后,订阅者接收消息

redis 127.0.0.1:6379> SUBSCRIBE tv
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "tv"
3) (integer) 1
1) "message"
2) "tv"
3) "haier"

?接收消息的三行记录的含义:表示这条信息是由某个客户端执行 PUBLISH 命令所发送的, 真正的信息。 信息的第二个元素是信息来源的频道, 而第三个元素则是信息的内容。