脚本宝典收集整理的这篇文章主要介绍了【redis前传】集思广益之quicklist,取其精华去其糟粕,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
2*(N-1)*8+N
个字节来构建listNode。通过上面的属性介绍,我们也可以了解了解到node节点中的数据结构就是ziplist 。在ziplist基础上会在进行压缩达到内存更高的使用效率!
关于压缩这里我们不用太去了解!主要目的就是一种编码,这种编码是无法真正使用的在使用期间redis会进行解码操作。在解码操作期间就是通过recomPress属性来标记的。
list-max-ziplist-size
属性是用来设置quicklist中每个节点中的ziplist存储的大小设置的。属性值 | 作用 |
---|---|
-1 | 每个quicklistNode节点的ziplist所占字节数不能超过4kb |
-2 | 每个quicklistNode节点的ziplist所占字节数不能超过8kb |
-3 | 每个quicklistNode节点的ziplist所占字节数不能超过16kb |
-4 | 每个quicklistNode节点的ziplist所占字节数不能超过32kb |
-5 | 每个quicklistNode节点的ziplist所占字节数不能超过64kb |
int | ziplist包含的entry上限 |
list-max-ziplist-Size: 2
。表示内部节点ziplist中entry个数最大为2 。此时我们head头部节点中已经存储了两个内容,tail尾部节点存储的是1个节点!st=>start: Insert
ziplistInsert=>operation: 向ziplist中插入
subziplistInsert=>oPEration: 将该ziplist拆分两个ziplist, 在对应位置加入
insertNear=>operation: 插入相邻的ziplist中
newZipInsert=>operation: 新建ziplist插入
cond=>condITion: ziplist是否可以容纳
headtailCond=>condition: 插入位置在ziplist两端
nearheadtailCond=>condition: 相邻ziplist是否可以容纳
e=>end: 快乐的一天
st->cond
cond(yes)->ziplistInsert
cond(no)->headtailCond(yes)->nearheadtailCond
headtailCond(no)->subziplistInsert
nearheadtailCond(yes)->insertNear
nearheadtailCond(no)->newZipInsert
lzf压缩算法
以上是脚本宝典为你收集整理的【redis前传】集思广益之quicklist,取其精华去其糟粕全部内容,希望文章能够帮你解决【redis前传】集思广益之quicklist,取其精华去其糟粕所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。