06.压缩列表

1.简介:

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

2. 压缩列表的构成 :

   压缩列表是 redis 为了节约内存开发的,是由一系列的特殊编码的连续内存块组成的顺序性的数据结构。 一个压缩列表可以包含多个节点,每个节点可以保存一个字节数组或者一个整数值。

压缩列表1.jpg

压缩列表2.jpg

3. 压缩列表节点构成 :

   1. 每个压缩列表节点可以保存一个字节数组或者一个整数值。
     数组的长度取值:
       1. 长度小于等于 63 字节的字节数组 2. 长度小于 16383 字节数组 3. 长度小于 4294967295 字节数组
     整数值的取值:
       4位长,介于0至12之间的无符号整数
   2. 每个压缩列表节点由 previous_entry_length,encoding,content 三部分组成。
     previous_entry_length :
       节点的 previous_entry_length 属性以字节为单位,记录了压缩列表的前一个节点的长度,previous_entry_length 属相的长度可以为1字节或者5字节。
     encoding :
       节点的 encoding 记录了节点 content 属性所保存的类型和长度。
     content :
       节点的 content 记录了节点的值。

4. 连锁更新 :

TODO:

你可能感兴趣的:(06.压缩列表)