小贝_redis高级应用-公布与订阅
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也会收到这个/这些频道的信息
小贝_redis高级应用-公布与订阅的更多相关文章
- 小贝_redis 高级应用-事务
redis高级应用-事务 一.redis的事务 二.redis实现事务 三.redis事务问题 一.redis的事务 事务提供了一种"将多个命令打包,然后一次性.按顺序地运行"的机 ...
- 小贝_redis高级应用-安全性
redis高级应用-安全性 一.为什么redis须要安全性 二.设置redis验证password 三.验证 一.为什么redis须要安全性 1.redis作为数据的存储介质.假设无法保证redi ...
- 小贝_redis hash类型学习
Redis Hash类型 一.查看hash类型的命令 二.操作hash命令具体解释 一.查看hash类型的命令 1.输入 help@hash 127.0.0.1:6379>help @hash ...
- 小贝_redis list类型学习
redis list类型 一.查看list类型的命令 二.list命令具体解释 一.查看list类型的命令 1.在终端数据 help @list 127.0.0.1:6379>help @li ...
- 小贝_redis web管理界面工具安装
RedisWEB管理界面工具安装 一.概述 二.文件下载 三.安装过程 一.概述 1.因为redis是基于C/S的方式开发.也就是说,仅仅要满足于redis的client通信要求的,都能够作为redi ...
- sqlserver2005公布与订阅配置步骤
1,新建公布 前提条件:第一要调通网络,在sqlserver configuration manager 中选择mssqlserver的协议把named pipes改为启用.第二要建立一个目录D:\b ...
- Sql2008 r2 使用ftp 公布和订阅方式同步数据
Sql2008 r2使用公布和订阅方式同步数据 因为非常多图片 本篇没有图片 详情能够进入下载页 http://download.csdn.net/download/yefighter/760374 ...
- 小贝_php+redis简单实例
php+redis简单实例 一.说明 因为redis是c/s架构.从这个角度上.不论什么符合redis的client要求的.都能够与redis进行通讯.官方提供了非常多的client. php在web ...
- 微信小程序新服务消息推送 —— 订阅消息
微信团队前不久公测了「订阅消息」,原有的小程序模板消息接口将于 2020 年 1 月 10 日下线,届时将无法发送模板消息.「订阅消息」将完全替代「模板消息」,这两天得空测试了一波. 1.下发权限机制 ...
随机推荐
- PHP 笔记——String 字符串
1. 定义 单引号括起来的字符串被原样输出. 双引号字符串中的变量被PHP解析为变量值. 2. 获取字符串长度 strlen(string $string): int 在utf-8下,汉字占3个字符, ...
- 「TJOI 2018」游园会 Party
「TJOI 2018」游园会 Party 题目描述 小豆参加了 \(NOI\) 的游园会,会场上每完成一个项目就会获得一个奖章,奖章只会是 \(N, O, I\) 的字样. 在会场上他收集到了 \(K ...
- [BZOJ 4071] 巴邻旁之桥
Link: BZOJ 4071传送门 Solution: 首先算出能提前算的贡献 $K=1$:肯定选中间的点,小学数学 $K=2$:对于每对$(x,y)$一定选离$(x+y)/2$近的桥 也就是说将$ ...
- 【树形DP】BZOJ1040-[ZJOI2008]骑士
[题目大意] 有n个骑士,给出他们的能力值和最痛恨的一位骑士.选出一个骑士军团,使得军团内没有矛盾的两人(不存在一个骑士与他最痛恨的人一同被选入骑士军团的情况),并且,使得这支骑士军团最具有战斗力,求 ...
- Yii2 init 与 beforeAction 区别
1.执行顺序 init > beforeAction 2.调用子函数时,两个函数都不会再次执行 3.返回值 init返回false继续执行,beforeAction停止执行 4.执行EXIT,全 ...
- CXF和Axis2开发webservice也是可以添加asmx等后缀
在当家互联网时代, 手机APP所需要的后台服务接口经常会变化, 如果前期没有设计好, 把它们的请求地址配置在比较稳定不会经常修改的地址(例如专门一个后台服务用于获取所有最新的数据服务地址)这样不会因为 ...
- bzoj 1030
dp[i][j] 表示,在AC自动机中,从根节点开始,走了i条边,并且经过的点不包含危险节点,走到了j节点的路径数. 收获: 1.正难则反 2.一个字符串不包含给定pattern中的任何一个,则该字符 ...
- yii/helper/Html
1.生成标签: <?=Html::tag('标签',‘标签中的内容’,[‘标签属性’])?> 举例: <?=Html::tag('p','HelloWorld',['id'=> ...
- Map中keySet和entrySet的区别
在Map集合中 values():方法是获取集合中的所有的值----没有键,没有对应关系, KeySet():将Map中所有的键存入到set集合中.因为set具备迭代器.所有可以迭代方式取出所有的键, ...
- mongoDB系列之(一):10分钟玩转mongoDB
1. mongoDB是什麽 mongodb是时下流行的NoSql数据库,它的存储方式是文档式存储,并不是Key-Value形式. 存储在集合中的文档,被存储为键-值对的形式.键用于唯一标识一个文档,为 ...