美文网首页
Redis 数据结构之链表

Redis 数据结构之链表

作者: 杰哥长得帅 | 来源:发表于2019-02-04 17:15 被阅读10次

当一个列表键包含了数量比较多的元素,又或者列表中包含的元素都是比较长的字符串时,Redis 就会使用链表作为列表键的底层实现

除了链表键外,发布与订阅、慢查询、监视器等功能也用到了链表,Redis 本身还使用链表来保存多个客户端的状态信息,以及使用链表来构建客户端输出缓冲区

每个链表节点用一个 listNode 结构来表示:

多个 listNode 可以通过 prev 和 next 指针组成双端链表:

链表结构:

Redis 链表特性总结如下:

  • 双端
  • 无环
  • 带表头指针和表尾指针
  • 带链表长度计数器:使得程序获取链表中节点数量的复杂度为 O(1)
  • 多态:链表节点使用 void* 指针来保存节点值,并且可以通过 list 结构的 dup、free、match 三个属性为节点值设置类型特定函数

相关文章

网友评论

      本文标题:Redis 数据结构之链表

      本文链接:https://www.haomeiwen.com/subject/dcnpsqtx.html