Redis 6.0 源码阅读笔记(4)- List 数据类型源码分析 -- TBD
文章目录
1. 存储的结构
redis 对于 List 的存储共有 3 种存储形式,其中 OBJ_ENCODING_LINKEDLIST
已经彻底废弃不再讨论,其它两种存储形式的内存结构如下图示例:
-
OBJ_ENCODING_ZIPLIST
:底层结构类似数组,使用特定属性保存整个列表的元信息,如整个列表占用的内存大小,列表保存的数据开始的位置,列表保存的数据的个数等,其保存的数据被封装在zlentry
zlentry
是压缩列表保存数据的节点,其结构与 ziplist 类似,都是使用内部属性保存元信息,指针 p 指向存储的元素 -
OBJ_ENCODING_QUICKLIST
:采用双向链表结构,每个链表节点都保存一个 ziplist,数据实际存储在 ziplist 内部。redis 6.0 中 List 列表对象采用的存储结构只有 quicklist