Redis发布订阅

发布订阅模式中发布消息的为publisher即发布者,接收消息的为subscriber即订阅者。在Redis中,所有的消息通过channel即频道进行发布,一个发布者可以向多个channel发布消息,一个订阅者也可以订阅多个channel。Redis不对消息进行持久化,如果消息发布时订阅者还没有进行订阅,则不会再收到此消息。

发布订阅命令

命令 格式 说明
PUBLISH PUBLISH channel message 发布message到指定的channel
SUBSCRIBE SUBSCRIBE channel [channel ...] 订阅1个或多个指定的channel
UNSUBSCRIBE UNSUBSCRIBE [channel [channel ...]] 取消订阅1个或多个指定的channel,如果不指定channel退订所有通过SUBSCRIBE订阅的channel
PSUBSCRIBE PSUBSCRIBE pattern [pattern ...] 根据匹配模式订阅channel
PUNSUBSCRIBE PUNSUBSCRIBE [pattern [pattern ...]] 根据匹配模式取消订阅channel,如果不指定匹配模式退订所有通过PSUBSCRIBE订阅的channel

subscribe不能重复订阅同一个channel,而psubscribe按照匹配模式订阅时有可能会多次订阅同一个channel。如果psubscribe多次订阅了同一个channel,发布者使用publish发布消息到此channel后,订阅者会多次收到此消息。

unsubscribe只能退订subscribe订阅的channel,punsubscribe只能退订psubscribe订阅的channel。

使用方法

1、订阅指定channel

192.168.1.100:6379> subscribe testchan
Reading messages... (press Ctrl-C to quit)
1) "subscribe" #订阅成功
2) "testchan" #订阅的channel名称
3) (integer) 1 #已订阅的channel个数 1) "message" #收到消息
2) "testchan" #消息来源channel
3) "hello" #消息内容 192.168.1.100:6379> publish testchan hello
(integer) 1 #收到消息的订阅者的数量

  

2、订阅指定匹配模式的channel

192.168.1.100:6379> psubscribe test*
Reading messages... (press Ctrl-C to quit)
1) "psubscribe" #订阅成功
2) "test*" #订阅的channel匹配模式
3) (integer) 1 #已订阅的channel匹配模式个数 1) "pmessage" #收到消息
2) "test*" #匹配的订阅模式
3) "testchan" #消息来源channel
4) "hello" #消息内容 192.168.1.100:6379> publish testchan hello
(integer) 1 #收到消息的订阅者的数量

  

原文地址:http://caiguoqing.org/post/110

最新文章

  1. textView的提醒文字
  2. log4j输出模板
  3. PHP实现队列及队列原理
  4. JavaScript 常用算法
  5. maven工程引用外部jar包
  6. A除以B问题
  7. PHP通用函数 - 日期生成时间轴
  8. web访问速度优化分析
  9. LabVIEW设计模式系列——case结构模拟事件结构
  10. C#实现自动切割图片
  11. 使用tcpdump抓Android网络包
  12. zTree实现地市县三级级联报错(三)
  13. pyhton崩溃的第六天,又有新成员
  14. window 命令大全
  15. FLIR ONE PRO热成像仪
  16. 20155205 2016-2017-2 《Java程序设计》第8周学习总结
  17. phd文献阅读日志-博一上学期
  18. codeforces 993c//Careful Maneuvering// Codeforces Round #488 by NEAR (Div. 1)
  19. Spring Security构建Rest服务-0300-Restful API异常处理
  20. 思科、华为、H3C命令对照表

热门文章

  1. Apache HTTP Server 2.2.34安装
  2. 13.深入k8s:Pod 水平自动扩缩HPA及其源码分析
  3. Pyinstaller打包通用流程
  4. 排序算法:冒泡排序(Bubble Sort)
  5. 安装、验证安装 Oracle Database XE 11gR2
  6. 正式班D5
  7. shell-批量修改文件名及扩展名多案例
  8. HanLP的分词统计
  9. Python操作图像
  10. CDH5部署三部曲之二:部署和设置