Redis数据结构--压缩链表

压缩列表是一种为节约内存而开发的顺序型数据结构。压缩链表用于存储小整数值,或者长度比较短的字符串。

压缩链表的结构

 Redis数据结构--压缩链表_第1张图片

 压缩列表节点的结构

         previous_entry_length属性以字节为单位,记录了压缩列表中前一个节点的长度。previous_entry_length属性的长度可以是1字节或者5字节。如果前一节点的长度小于254字节,那么previous_entry_length属性的长度为1字节:前一节点的长度就保存在这一个字节里面。如果前一节点的长度大于等于254字节,那么previous_entry_length属性的长度为5字节:其中属性的第一字节会被设置为0xFE(十进制值254),而之后的四个字节则用于保存前一节点的长度。

        压缩列表的从表尾向表头遍历操作就是使用这一原理实现的,只要我们拥有了一个指向某个节点起始地

你可能感兴趣的:(学习总结记录)