您的位置:首页 > 数据库 > Redis

redis pub/sub 发布订阅

2014-07-09 20:40 375 查看
Redis的列表数据结构有
blpop
brpop
命令,能从列表里返回且删除第一个(或最后一个)元素,或者被堵塞,直到有一个元素可供操作。这可以用来实现一个简单的队列。(参考:http://www.cnblogs.com/youxin/p/4191547.html)

(译注:对于
blpop
brpop
命令,如果列表里没有关键字可供操作,连接将被堵塞,直到有另外的Redis客户端使用
lpush
rpush
命令推入关键字为止。)


此外,Redis对于消息发布和频道订阅有着一流的支持。你可以打开第二个
redis-cli
窗口,去尝试一下这些功能。在第一个窗口里订阅一个频道(我们会称它为
warnings
):

subscribe warnings

其将会答复你订阅的信息。现在,在另一个窗口,发布一条消息到
warnings
频道:

publish warnings "it's over 9000!"

如果你回到第一个窗口,你应该已经接收到
warnings
频道发来的消息。

你可以订阅多个频道(
subscribe channel1 channel2 ...
),订阅一组基于模式的频道(
psubscribe warnings:*
),以及使用
unsubscribe
punsubscribe
命令停止监听一个或多个频道,或一个频道模式。

最后,可以注意到
publish
命令的返回值是1,这指出了接收到消息的客户端数量。

这里的客户端与server端采用长连接建立推送机制,一个客户端发布消息,可以在多个客户端收到通知。

参考:

http://redis.io/topics/pubsub 中文译文:http://www.redis.cn/topics/pubsub.html

https://redis.readthedocs.org/en/latest/pub_sub/index.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: