• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

redis当中的发布与订阅

redis 海叔叔 21小时前 6次浏览 已收录 0个评论

当一个客户端执行SUBSCRIBE命令订阅某个或某些频道的时候,这个客户端与被订阅频道之间就建立起了一种订阅关系,redis将所有频道的订阅关系都保存在服务器状态的pubsub_channels字典里面,这个字典的键是某个被订阅的频道,而键的值则是一个链表,链表里面记录了所有订阅这个频道的客户端:

每当有客户端订阅频道时,就会向这个字典里面添加对应的项;而退订频道就是删除对应的项。
而模式的订阅则是保存在一个pubsub_patterns的链表里面,链表中的每个节点都包含着一个pubsubPattern结构,

发送消息
当一个redis客户端执行PUBLISH 命令将消息message发送给频道channel的时候,服务器将会执行以下两个动作:
1. 将消息message发送给channel频道的所有订阅者
2. 搜索模式链表,发送message给所有匹配pattern的客户端


喜欢 (2)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址