是一个双端链表,每个quicklist都指向一个ziplist
为了避免ziplist的entry太多,redis有一个配置项来限制list-max-ziplist-size
config get list-max-ziplist-size
如果这个值是正数,代表按entry的个数来限制(一般不这么做)
如果是-1到-5的负数,代表按容量来限制,默认是-2
节点压缩
quicklist还可以选择是否把ziplist压缩
配置项 list-compress-depth
config get list-compress-depth
默认是0
0 特殊值 代表不压缩
1 代表链表的首尾各有一个元素不压缩
2 代表首尾各有2个不压缩,以此类推
链表结构
quicklist->quicklistnode->ziplist
压缩的内容读取的时候会解压缩
quicklist特点
节点为ziplist的双端链表,解决传统链表的内存占用问题
控制了ziplist大小,解决连续内存空间申请效率问题
中间的节点可以压缩,进一步节省内存
redis双端链表quicklist
最新推荐文章于 2024-09-11 16:34:39 发布