首页 > 其他 > 详细

Redis之订阅是怎么实现的

时间:2021-01-24 11:15:16      阅读:31      评论:0      收藏:0      [点我收藏+]

一 订阅的数据结构

struct redisServer {

  //...

  dict *pubsub_channels;

  // ..

  }

  技术分享图片

  该数据结构就是hashtable加上链表

  每当客户端发送SUBSCRIBE命令分为两种情况

  1 该channel已经存在了,那么就把新的客户端加到链表的尾节点

  2 如果channel不存在,就现在hashmap里加入一个新的key-value对,

  技术分享图片

  技术分享图片

  退订模式与订阅模式正相反,找到字典对应的链表找到元素对其进行删除,然后判断链表是否为空,如果为空说明这个频道已经没人订阅了,就在hashtable中删除这个key

  

Redis之订阅是怎么实现的

原文:https://www.cnblogs.com/juniorMa/p/14320022.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!