美文网首页
第七章 压缩列表

第七章 压缩列表

作者: 今天不想掉头发 | 来源:发表于2019-07-26 10:58 被阅读0次

    压缩列表是列表键和哈希键的底层实现之一。当一个列表键只包含少量列表项,并且每个列表项要么就是小整数值,要么就是长度比较短的字符串,那么Redis就会使用压缩列表来做列表键的底层实现。


    image.png

    另外,当一个哈希键只包含少量键值对,并且每个键值对的键和值要么就是小整数值,要么就是长度比较短的字符串,那么Redis就会使用压缩列表来做哈希键的底层实现。


    image.png

    压缩列表的结构如图所示:


    image.png

    压缩列表节点的结构如图所示:


    image.png

    其中
    previous_entry_length表示前一个节点的长度,通过该属性可以从尾节点向前遍历到头节点;
    encoding记录了节点content属性所保存数据的类型及长度;
    content属性负责保存节点的值,节点值可以是一个字节数组或者整数。

    连锁更新

    当插入一个大元素或者删除掉一个小元素而暴露出前面的大元素的时候可能会引起后序多个压缩列表节点的扩容操作(如果前一个节点的长度小于254字节,length只是用1个字节长的空间;如果前一个字节长度大于等于254字节,则length要用5字节长的空间)。

    image.png

    相关文章

      网友评论

          本文标题:第七章 压缩列表

          本文链接:https://www.haomeiwen.com/subject/wuilrctx.html