Redis学习笔记---Redis的模式订阅与退订
Redis学习笔记—Redis的模式订阅与退订
1.发布订阅简介
- 发布订阅是一种通信的模式,Redis提供了发布订阅功能,可以用于消息的传输
- Redis的发布订阅机制包括三个部分,
publisher(发布)
,subscriber(订阅)
和Channel
发布者
和订阅者
都是Redis
客户端,Channel
则为Redis
服务器端发布者
将消息发送到某个的频道,订阅了这个频道的订阅者
就能接收到这条消息
2.发布订阅机制:订阅某个频道或模式:
客户端(client)
:- 属性为pubsub_channels,该属性表明了该客户端订阅的所有频道
- 属性为pubsub_patterns,该属性表示该客户端订阅的所有模式
typedef struct redisClient { ... //该client订阅的channels,以channel为key用dict的方式组织,value就是client dict *pubsub_channels; //该client订阅的pattern(模式),以list的方式组织,里面是订阅的pattern list *pubsub_patterns; ... } redisClient;
服务器端(RedisServer)
:- 属性为pubsub_channels,该服务器端中的所有频道以及订阅了这个频道的客户端
- 属性为pubsub_patterns,该服务器端中的所有模式和订阅了这些
模式
的客户端
struct redisServer { ... // redis server进程中维护的channel dict,它以channel为key // 订阅这个channel的所有client是value,value是list的类型 dict *pubsub_channels; //redis server进程中维护的pattern,类型是list,里面放pattern和客户端(clients),也就是订阅这个模式的所有客户端 list *pubsub_patterns; int notify_keyspace_events;... };
过程介绍
:- 当客户端向某个频道发送消息时,Redis首先在redisServer中的pubsub_channels中找出键为该频道的结点,遍历该结点的值,即遍历订阅了该频道的所有客户端,将消息发送给这些客户端。
- 然后,遍历结构体redisServer中的pubsub_patterns,找出包含该频道的模式的结点,将消息发送给订阅了该模式的客户端。
使用场景
:哨兵模式,Redisson框架使用- 在Redis哨兵模式中,哨兵通过发布与订阅的方式与Redis主服务器和Redis从服务器进行通信。这个我们将在后面的章节中详细讲解。
- Redisson是一个分布式锁框架,在Redisson分布式锁释放的时候,是使用发布与订阅的方式通知的,这个我们将在后面的章节中详细讲解。
Redis学习笔记---Redis的模式订阅与退订相关推荐
- StackExchange.Redis学习笔记(五) 发布和订阅
StackExchange.Redis学习笔记(五) 发布和订阅 原文:StackExchange.Redis学习笔记(五) 发布和订阅 Redis命令中的Pub/Sub Redis在 2.0之后的版 ...
- Redis学习笔记---Redis的主从复制
Redis学习笔记-Redis的主从复制 1.Redis的高可用性 高可用性(High Availability)通常来描述一个系统经过专门的设计,从而减少停工时间,而保持其服务的高度可用性. Rei ...
- Redis学习笔记~Redis在windows环境下的安装
Redis是一个key-value的存储系统,它最大的特点就是可以将数据序列化到文件中. redis存储在服务器的内存或者文件中,它不是session,不是cookies,它只是个更安全,更稳定,更可 ...
- Redis学习笔记---Redis的事务
Redis学习笔记-Redis的事务 1. Redis事务(弱事务)和Mysql事务对比 Atomicity(原子性):构成事务的的所有操作必须是一个逻辑单元,要么全部执行,要么全部不执行. Redi ...
- redis学习笔记---redis的哨兵Sentinel
2019独角兽企业重金招聘Python工程师标准>>> 一.介绍: redis的sentinel系统用来管理多个redis服务器,可以实现一个功能上实现HA的集群.该系统主要执行三个 ...
- redis 学习笔记——redis集群
redis-cluster 简介 redis-cluster是一个分布式.容错的redis实现,redis-cluster通过将各个单独的redis实例通过特定的协议连接到一起实现了分布式.集群化的目 ...
- Redis学习笔记--Redis数据过期策略详解==转
本文对Redis的过期机制简单的讲解一下 讲解之前我们先抛出一个问题,我们知道很多时候服务器经常会用到redis作为缓存,有很多数据都是临时缓存一下,可能用过之后很久都不会再用到了(比如暂存sessi ...
- Redis学习笔记~Redis事务机制与Lind.DDD.Repositories.Redis事务机制的实现
回到目录 Redis本身支持事务,这就是SQL数据库有Transaction一样,而Redis的驱动也支持事务,这在ServiceStack.Redis就有所体现,它也是目前最受业界认可的Redis驱 ...
- Redis学习笔记--Redis数据过期策略详解
过期策略 https://www.cnblogs.com/xuliangxing/p/7151812.html 内存淘汰机制 https://blog.csdn.net/yuanlong122716/ ...
最新文章
- Centos7安装Apache和PHP,包含配置过程
- JobScheduler的使用
- mysql 变量生命周期_Go: 延长变量的生命周期
- 一个简单的Kafka Flink Rabbitmq Demo
- 【Java】List 按照字符串里的数值排序
- 全国地名联动选择的程序|地名三级联动(原创JS无数据库19K优化版)
- 软件测评师的一些重点①
- 20中氨基酸名称、简写及化学式
- Android串口开发
- 特征级融合_自动驾驶系统入门(七)- 多传感器信息融合(MSIF)
- Win10系统导出证书私钥及公钥
- EduCoder-Web程序设计基础-html5—表格高级样式的设置-第5关:表格的综合案例
- 趣聊51之串口通信(实现篇)
- 领导逼迫员工离职的10大套路
- 会声会影X10视频制作软件中文密钥激活版
- Foxmail 邮件的备份与恢复
- 七星聚会!我在学堂在线获得的荣誉证书!(截至2017年8月12日)
- GameFramework框架详解之(四)对象池模块
- message from server: Host 'DESKTOP-QIR7OV5' is not allowed to connect to this MySQL server问题
- 从一文不值到数字黄金 诞生于极客圈的比特币,究竟经历了什么?