论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
应用中心
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
IT评测·应用市场-qidao123.com技术社区
»
论坛
›
数据库
›
Oracle
›
Redis组件先容(六)
Redis组件先容(六)
数据人与超自然意识
论坛元老
|
2024-9-3 20:32:43
|
显示全部楼层
|
阅读模式
楼主
主题
1784
|
帖子
1784
|
积分
5352
写在前面
今天学习redis最后的知识。
Redis 的发布与订阅
发布/订阅模式
Redis 提供了两种发布/订阅模式:
基于频道 (Channel) 的发布/订阅
基于模式 (Pattern) 的发布/订阅
干系命令
订阅频道
subscribe channel [channel ...]
复制代码
订阅给定的一个或多个频道。
退订频道
unsubscribe channel [channel ...]
复制代码
退订给定的频道。若没有指定频道,则默认退订所有频道。
发布消息
publish channel message
复制代码
将消息发送给指定频道 channel。返回结果:接收到信息的订阅者数量,无订阅者返回 0。
检察活泼频道
pubsub channels [argument [argument ...]]
复制代码
检察订阅与发布系统的状态。返回活泼频道列表(即至少有一个订阅者的频道,订阅模式的客户端除外)。
按模式订阅
psubscribe pattern1 [pattern ...]
复制代码
订阅一个或多个符合给定模式的频道。每个模式以 * 作为匹配符;例如 shujia* 匹配所有以 shujia 开头的频道,如 shujia.java、shujia.hadoop。
按模式退订
punsubscribe [pattern [pattern ...]]
复制代码
退订所有给定模式的频道。若 pattern 未指定,则退订所有模式;否则只退订指定的模式。
消息队列
在 Redis 中,List 数据范例可以用于排队数据,按照顺序取出,但无法精确获取(双端队列)。这种方式存在两个局限性:
不能支持一对多的消息分发。
如果生产者天生的速度远大于消耗者的消耗速度,易堆积大量未消耗的消息。
脚色
发布者(Publisher)
:使用 PUBLISH 命令将消息发布到指定的频道。
订阅者(Subscriber)
:使用 SUBSCRIBE 命令订阅一个或多个频道以接收消息。所有订阅同一频道的订阅者都会收到此消息。
频道(Channel)
:频道是消息的通道,发布者通过指定频道来发布消息,订阅者通过订阅频道来接收干系消息。
消息(Message)
:由发布者发送给订阅者的数据。
留意
订阅者使用 SUBSCRIBE 命令订阅频道后,将会一直等待新消息。可以使用 UNSUBSCRIBE 命令取消订阅。
Redis 的发布订阅模式不保证消息的可靠传递。如果订阅者在消息发布之前已断开连接,则无法接收到已发布的消息。换句话说,如果先发布消息,再订阅频道,不会收到订阅之前就发布到该频道的消息!
Redis 提供了其他干系命令和功能,如按模式订阅 (PSUBSCRIBE)、取消订阅 (UNSUBSCRIBE) 等。可以查阅 Redis 文档以获取更多信息。
请留意
:在高吞吐量和大规模发布订阅场景下,Redis 的发布订阅模式可能不是最佳选择,可以考虑使用专门的消息队列系统来替换。
状态表明
localhost:7000> subscribe xiaohu1
Reading messages... (press Ctrl-C to quit)
1) "subscribe" # 返回值类型:表示订阅成功!
2) "xiaohu1" # 订阅频道的名称
3) (integer) 1 # 当前客户端已订阅频道的数量
复制代码
示意图
频道订阅
:订阅频道时先检查字段内部是否存在;不存在则为当前频道创建一个字典,并创建一个链表存储客户端 ID;否则直接将客户端 ID 插入到链表中。
取消频道订阅
:取消时将客户端 ID 从对应的链表中删除;如果删除之后链表为空,则将会把这个频道从字典中删除。
发布
:首先根据 channel 定位到字典的键,然后将信息发送给字典值链表中的所有客户端。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
正序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
发新帖
回复
数据人与超自然意识
论坛元老
这个人很懒什么都没写!
楼主热帖
2023团队天梯模拟赛 L2-3 智能护理中心 ...
4. 事务和锁
Java Long类的bitCount()方法具有什么 ...
渗透测试02
kubernetes使用学习(k8s)
【记录】Python爬虫|爬取空间PC版日志 ...
数据类型前置知识
OSPF多区域
那些年你用过最好的键盘
SQL Server 触发器
标签云
集成商
AI
运维
CIO
存储
服务器
浏览过的版块
Mysql
物联网
SQL-Server
移动端开发
Postrge-SQL技术社区
登录参与点评抽奖加入IT实名职场社区
下次自动登录
忘记密码?点此找回!
登陆
新用户注册
用其它账号登录:
关闭
快速回复
返回顶部
返回列表