底层:快速列表quicklist

底层:快速列表quicklist

在redis早期版本中,list底层使用的是ziplist和linkedlist(元素少时ziplist,多时linkedlist),后来因为链表指针的空间占用大换成了现在的quicklist,quicklist就是两者的混合体,它将linkedlist按段拆分,每一段是一个ziplist,每个ziplist用双向指针连接起来。ziplist默认一个存8k字节,这个可以通过配置调整。

压缩深度

redis会对ziplist进行压缩,为了支持快速的push和pop,一般头尾两个ziplist不压缩,也就是压缩深度为1,默认深度为0,也可以通过配置调整。

上一篇:Redis(六):list/lpush/lrange/lpop 命令源码解析


下一篇:Redis数据结构——quicklist