底层:快速列表quicklist
在redis早期版本中,list底层使用的是ziplist和linkedlist(元素少时ziplist,多时linkedlist),后来因为链表指针的空间占用大换成了现在的quicklist,quicklist就是两者的混合体,它将linkedlist按段拆分,每一段是一个ziplist,每个ziplist用双向指针连接起来。ziplist默认一个存8k字节,这个可以通过配置调整。
压缩深度
redis会对ziplist进行压缩,为了支持快速的push和pop,一般头尾两个ziplist不压缩,也就是压缩深度为1,默认深度为0,也可以通过配置调整。