QuickList
Redis在3.2版本引入数据结构,是一个双端链表,每个节点都是一个ZipList。
引入的原因:ZipList申请内存空间是连续的,如果内存占用较多,申请内存效率很低
思想:属于分片存储的思想
Redis配置项:
list-max-ziplist-size 可以限制ziplist的大小。
值为正:代表entry个数。
值未负:代表ziplist的内存大小 默认值: -2
-1:<=4kb
-2:<=8kb
-3:<=16kb
....
-5:<=64kb
list-compress-depth 可以对ziplist做压缩
0:不压缩
1:QuickList的首位各有1个节点不压缩,中间节点压缩
2:QuickList的首位各有2个节点不压缩,中间节点压缩
特点:
- 节点为ZipList的双端链表
- 解决了传统链表内存占用问题
- 控制了Ziplist的大小,解决了空间申请效率的问题
- 中间节点可以压缩,进一步节省了内存