开发者社区> 青夜之衫> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

Redis发布订阅实现原理

简介:
+关注继续查看

发布订阅中使用到的命令就只有三个:PUBLISH,SUBSCRIBE,PSUBSCRIBE

  • PUBLISH 用于发布消息
  • SUBSCRIBE 也叫频道订阅,用于订阅某一特定的频道
  • PSUBSCRIBE 也叫模式订阅,用于订阅某一组频道,使用glob的方式,比如xxx-*可以匹配xxx-a,和xxx-b,xxx-ddd等等

订阅频道: pubsub_channels

449064-20151010171636581-1404085038.png

关联操作:

  • 如果已经存在订阅者,则添加到链表的尾部
  • 如果没有订阅者,那么创建频道,然后添加订阅者

删除操作:

  • 找到对应的链表,进行删除
  • 如果删除后,链表为空,则删除频道

模式订阅: pubsub_patterns

client-7订阅music.*
client-8订阅book.*
client-9订阅news.*

449064-20151010171644940-1270908200.png

订阅模式:

  • 新建一个pubsubPattern结构
  • 添加到链表的尾部

退订模式:

  • 查找相应的pubsubPattern然后删除

发送消息:

  • 将消息发送给channel频道的所有订阅者
  • 遍历整个pubsub_patterns表,查找匹配的模式,如果有一个或者多个模式与频道匹配,将消息发送给pattern模式的订阅者

相关命令:

  • 查看所有的频道:PUBSUB CHANNELS
  • 查询订阅者的数量:PUBSUB NUMSUB
  • 查询服务器被订阅者的数量:PUBSUB NUMPAT
本文转自博客园xingoo的博客,原文链接:Redis发布订阅实现原理,如需转载请自行联系原博主。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Redis的持久化与数据淘汰策略
Redis的持久化与数据淘汰策略
36 0
Redis持久化 - RDB和AOF(一)
Redis持久化 - RDB和AOF(一)
48 0
Redis持久化 - RDB和AOF(二)
Redis持久化 - RDB和AOF(二)
56 0
带你走进Redis的世界 - Redis的持久化
带你走进Redis的世界 - Redis的持久化
23 0
面试官:Redis如何实现持久化的、主从哨兵又是什么?
本文讲解Redis如何实现持久化的以及是什么是主从哨兵。
26 0
Redis 源码分析 RDB 持久化
Redis 源码分析 RDB 持久化
46 0
docker安装redis 【简易安装,持久化, 且不以配置文件启动】
docker安装redis 【简易安装,持久化, 且不以配置文件启动】
111 0
redis入门到精通系列(五):redis的持久化看这一篇就够了
持久化顾名思义就是将存储在内存的数据转存到硬盘中。在生活中使用word等应用的时候,如果突然遇到断电的情况,理论上数据应该是都不见的,因为没有保存的word内容都存放在内存里,断电后就会清空,但是重新开启电脑后会发现有一个~$xx.docx的文件,虽然不一定保存所有数据,但是会将大部分数据保存下来,这种“自动备份”这就是持久化的一种实际案例。
49 0
Redis持久化
redis持久化----两种方式 redis提供了两种持久化的方式,分别是RDB(Redis DataBase)和AOF(Append Only File)。 1、RDB,简而言之,就是在不同的时间点,将redis存储的数据生成快照并存储到磁盘等介质上;
40 0
+关注
1040
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载