REDIS发布和订阅是消息通信模式:Publisher(pub)发送消息,订阅者(sub)接收消息。
REDIS通过发布和订阅等命令实现订阅和发布模式。此功能提供了两种消息机制,即订阅/发布的客户端,订阅/释放到模式
频道(通道)订阅
发布完整的过程
发布者已发布消息
发布者向频道频道发布了一条消息:1
订户订阅消息
执行订阅者后,客户将输入订阅状态,这只能制作订阅,取消订阅,psubscribe和pussubscribe的四个命令,超出了“已发布的订阅”
订阅渠道后的客户可能会收到三种类型的消息类型
数据结构
基于频道的发布订阅模式是通过字典数据类型实现的
其中,词典的关键是正在订阅的频道,字典的值是链接列表。链接列表保留了此频道的所有客户端订阅。
订阅订阅时,在字典中找到一个通道键(如果不是创建),并将链接列表背后的订阅客户端关联。客户端10执行订阅Channel1,Channel2,Channel2,Clinese3,Client10 to Channel1,Channel1,Channel2和Channel2和Channel2和Channel3将分别添加
发布
发布时,根据密钥,查找字典的地址以汇总密钥的地址,然后将MSG发送到关联链接列表中
提取
穿越链接的链接列表,删除指定的地址
2模式(模式)模式使用方式来订阅方式
在传递角色中?表示占位符,指示任何占位符(包括0)和?表达多个占位符。因此,当使用公共命令将信息发送到频道时,不仅所有客户端都订阅频道客户端将接收信息,如果某些模式与此频道匹配,那么所有订阅这些频道的客户端也将接收信息
订阅发布完整的过程
发布者已发布消息
订户订阅消息
数据结构
模式属性是一个链接列表,它将所有与信息相关的信息保留在链接列表中
数据结构如下:
订阅
有新订阅后,将订阅客户端和模式信息添加到链接列表
发布
当发布者发布该消息时,将首先发送到相应的频道,在Traverser模式列表中,根据关键匹配模式,匹配成功将消息发送到相应的订阅者
完整的伪代码如下:
提取
使用PunSubScribe,可以撤回订户,并更改客户端以删除链接列表。
原始:https://juejin.cn/post/709563241331267943