redis系列8---底层数据结构之压缩列表

118 阅读1分钟

应用在哪里?

列表键
哈希键

什么是压缩列表?

redis为了节约内存而开发的,是由一系列特殊编码的连续内存块组成的顺序型数据结构。

各个组成部分

zlbytes:记录整个压缩列表占用的内存字节数
zltail:记录压缩列表表尾节点距离起始地址有多少字节
zllen:节点数量(2字节)
entryX:各个节点
zlend:特殊值0xFF(十进制255),用于标记压缩列表的末端

压缩列表节点的构成

previous_entry_length:记录前一个节点的长度
encoding:记录节点的content属性所保存数据的类型以及长度
content:保存节点的值
    一个字节数组
        长度<=63字节的字节数组
        长度<=16383字节的字节数组
        长度<=4294967295字节的字节数组
    一个整数值
        4位长,介于0至12之间的无符号整数
        1字节长的有符号整数
        3字节长的有符号整数
        int16_t类型整数
        int32_t类型整数
        int64_t类型整数