小贝_redis高级应用-公布与订阅
发布日期:2021-08-17 10:07:41 浏览次数:41 分类:技术文章

本文共 1513 字,大约阅读时间需要 5 分钟。

redis高级应用-公布与订阅

一、公布与订阅(pub/sub)功能

二、公布与订阅(pub/sub)机制

三、redis公布与订阅(pub/sub)的实现

 

 

一、公布与订阅(pub/sub)功能

Pub/Sub功能(meansPublish, Subscribe)即公布及订阅功能。基于事件的系统中,Pub/Sub是眼下广泛使用的通信模型。它採用事件作为主要的通信机制。提供大规模系统所要求的松散耦合的交互模式:订阅者(如client)以事件订阅的方式表达出它有兴趣接收的一个事件或一类事件;公布者(如server)可将订阅者感兴趣的事件随时通知相关订阅者

公布/订阅的简易模型例如以下图所看到的:

 

二、公布与订阅(pub/sub)类别

      1、时间非耦合:公布者和订阅者不必同一时候在线,它们不必同一时候參与交互

 

      2、空间非耦合:公布者和订阅者不必相互知道对方所在的位置。

公布者通过事件服务公布事件,订阅者通过事件服务间接获得事件。公布者和订阅者不须要拥有直接到对方的引用。也不必知道有多少个订阅者或者是公布者參与交互

      3、同步非耦合:公布者/订阅者是异步模式。公布者可不断地生产事件。而订阅者(通过一个回调)则可异步地得到产生事件的通知

 

总结:

Pub/Sub是可适用于可扩展要求高、松散耦合系统的分布式交互模型。

在抽象层中,它的时间非耦合、空间非耦合和同步非耦合性可同意參与者不依赖还有一个而独立操作,具有一定的可扩展性;然而在实现层,可扩展性仍受其它原因的牵制。

比如:1、灵活的订阅要求复杂的过滤和路由算法。

        2、高可用性开销(事件侦听、日志重传);

        3、消息认可带来的网络流量消耗。

        4、庞大的订阅者数据带来的系统开销;

基于事件的Pub/Sub中间件的开发与利用在一定程度上能够提高系统的效率

 

三、redis公布与订阅(pub/sub)的实现

      redis 通过 publish 、subscribe、unsubscribe等命令实现了订阅与公布模式。 这个功能提供两种信息机制,各自是订阅/公布到频道和订阅/公布到模式。在这个实现中。 发送者(发送信息的client)不是将信息直接发送给特定的接收者(接收信息的client),而是将信息发送给频道(channel)或模式。 然后由频道/模式将信息转发给全部对这个频道感兴趣的订阅者

      1、publish、subscribe、unsubscribe、psubscribe、punsubscribe命令说明

            a、subscribe:订阅频道

            b、unsubscribe:退订频道

            c、publish:往某个频道,公布消息

           d、psubscribe: 订阅模式频道

           e、punsubscribe: 退订模式频道

      2、频道的订阅与信息公布简单实例

(备注: 订阅端订阅频道one,然后再公布端公布消息’hello world’,此时。订阅端就会显示公布的消息. )

      3、基于模式的订阅与信息公布简单实例

 

      4、消息格式

      4.1、假设是订阅频道。则返回消息类型(message),频道名称、详细消息内容

      4.2、假设是基于模式,则返回消息类型(pmessage)、模式名称、详细频道名称、详细消息内容

      5、理解订阅频道和订阅模式

      订阅频道,client则须要指明详细对应订阅的频道的名称。相反。订阅模式,client能够订阅一个带 * 号的模式。 假设某个/某些频道的名字和这个模式匹配, 那么当有信息发送给这个/这些频道的时候, client也会收到这个/这些频道的信息

      

转载于:https://www.cnblogs.com/yfceshi/p/6761631.html

转载地址:https://blog.csdn.net/weixin_30846599/article/details/99193925 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:div 居中
下一篇:Django restful-framework初步学习

发表评论

最新留言

能坚持,总会有不一样的收获!
[***.219.124.196]2024年03月05日 05时04分25秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

oracle 在需要下列之一,Oracle存储过程中PLS-00103:出现符号“/”在需要下列之一时:(... 2019-04-21
oracle10g dblink优化,Oracle10g通过dblink访问数据异常 2019-04-21
linux安装时的iso文件,直接用ISO文件在linux上安装新系统 2019-04-21
linux修改文件权限为所有人都可以访问,Linux 笔记分享八:文件权限的设定 2019-04-21
linux中卸载ambri-servle,Kerberos 命令使用 2019-04-21
linux二进制反编译,Xori:一款来自BlackHat 2018的二进制反汇编和静态分析工具 2019-04-21
linux两台主机添加信任,Linux两台机器间添加信任,实现不用密码问,互传文件... 2019-04-21
linux 自动获取ssl证书,linux生成自验证ssl证书的具体命令和步骤 2019-04-21
linux基础命令20个,20-linux中基础命令 2019-04-21
重置网络配置 android,重置Android移动网络信号? 2019-04-21
android 6.0权限统一,snails-permission 2019-04-21
html压缩包用什么软件打开方式,分享一招超简单打开zip文件的方法 2019-04-21
html5 拍照 分辨率,getUserMedia API及HTML5 调用手机摄像头拍照 2019-04-21
dubbo全局异常处理_基于spring aop的dubbo异常统一处理 2019-04-21
java 程序找错_java代码找错 2019-04-21
Java线程怎么发送消息_Java客户端Socket如何能在阻塞线程下收到服务端发送来的消息?... 2019-04-21
网页无法调用java9_JAVA 9 (内部类,异常,包) 2019-04-21
java约瑟夫环pta上_cdoj525-猴子选大王 (约瑟夫环) 2019-04-21
java++记录+运行_记录java+testng运行selenium(三)---xml、ini、excel、日志等配置 2019-04-21
mysql居左查询abcd_MySql速查手册 2019-04-21