redis学习之发布与订阅

发布与订阅(又称pub/sub),是一种消息通信模式,特点是订阅者(listener)负责订阅频道(channel),发送者(publisher)负责向频道发送二进制字符串消息。每当有消息被发送至给定频道时,频道的所有订阅者都会收到消息。


发布与订阅


SUBSCRIBE(订阅给定的一个或多个频道)

UNSUBSCRIBE(退订给定的一个或多个频道,如果执行时没有给定任何频道,那么退订所有频道)

PUBLISH(向给定频道发送消息)

PSUBSCRIBE(订阅与给定模式相匹配的所有频道)

PUNSUBSCRIBE(退订给订的模式,如果执行时没有给订任何模式,那么退订所有模式)

下图展示了频道 channel1 , 以及订阅这个频道的三个客户端 —— client2 、 client5 和 client1 之间的关系:



简单示例


上图中我一共开了三个窗口,第一个窗口作为发送者向频道test1发送消息,第二和第三个窗口作为订阅者订阅了频道test1,发布成功后会返回接收到这条消息的订阅者数量。发出去的消息不会被持久化,也就是说当客户端订阅test1后只能收到后续发布到该频道的消息,之前发送到就收不到了,而当没有订阅者时, 消息会被直接丢弃。


退订后将不会受到发送者发送的消息


redis还支持模式订阅和模式退订,*为模糊匹配符。

订阅所有频道的消息:psubscribe *

比如订阅以ziroom.开头的所有频道:psubscribe ziroom.*

取消所有频道的消息:punsubscribe *

比如取消订阅以ziroom.开头的所有频道punsubscribe ziroom*


源码学习:15天玩转redis



最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • redis-订阅与发布 Redis 通过 PUBLISH 、 SUBSCRIBE 等命令实现了订阅与发布模式, 这...
    全能程序猿阅读 5,863评论 0 4
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,869评论 18 139
  • 什么是发布订阅 发布订阅是一种消息通信模式,发布者(pub)发送消息,订阅者(sub)接收消息。举个生活中类似的场...
    Lee_DH阅读 657评论 0 3
  • Redis 发布订阅 Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(...
    stakeing阅读 282评论 0 0
  • 你心里住着一个孩子 卷缩着挣扎着 你庸俗也高雅 吃大蒜也喝咖啡 你渴望爱情却胆怯 大半青春保持单身 你平凡却有梦 ...
    从前慢阅读 173评论 0 0