redis pub/sub 发布订阅
2014-07-09 20:40 youxin 阅读(503) 评论(0) 编辑 收藏 举报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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
2013-07-09 linux shell 执行多个命令的方法
2013-07-09 linux中grep的用法 查找两个文件的相同之处,不同之处
2013-07-09 Shell中的正则表达式及字符串处理
2013-07-09 转:shell比较两个字符串是否相等
2013-07-09 UNIX 缩写风格
2013-07-09 转:.Net程序员学习Linux最简单的方法
2012-07-09 c++ 用lambda删除vector中元素