Redis 6.0 源码阅读笔记(4)- List 数据类型源码分析 -- TBD

1. 存储的结构

redis 对于 List 的存储共有 3 种存储形式,其中 OBJ_ENCODING_LINKEDLIST已经彻底废弃不再讨论,其它两种存储形式的内存结构如下图示例:

  • OBJ_ENCODING_ZIPLIST:底层结构类似数组,使用特定属性保存整个列表的元信息,如整个列表占用的内存大小,列表保存的数据开始的位置,列表保存的数据的个数等,其保存的数据被封装在 zlentry

    zlentry 是压缩列表保存数据的节点,其结构与 ziplist 类似,都是使用内部属性保存元信息,指针 p 指向存储的元素

    Redis 6.0 源码阅读笔记(4)- List 数据类型源码分析 -- TBD

  • OBJ_ENCODING_QUICKLIST:采用双向链表结构,每个链表节点都保存一个 ziplist,数据实际存储在 ziplist 内部。redis 6.0 中 List 列表对象采用的存储结构只有 quicklist

    Redis 6.0 源码阅读笔记(4)- List 数据类型源码分析 -- TBD

2. 数据存储源码分析