压缩列表
- 压缩列表是为了节约内存而开发的,是由一系列特殊编码的连续内存组成的顺序型数据结构
- 一个压缩列表可以包含任意多个节点entry,每个节点可以保存一个字节数组或一个整数值
- 每个压缩节点有三个部分组成
- previous_entry_length
- 以字节为单位,记录了前一个节点的长度,长度可以是1字节或5字节
- encoding
- 记录了节点的content属性所保存数据的类型以及长度
- content
- 负责保存节点的值,可以是一个字节数组或整数,值类型和长度由节点的encoding属性决定
- previous_entry_length
- 连锁更新,cascade update
- 在特殊情况下产生的连续多次空间扩展操作称之为连锁更新
- 除了添加新节点可能会引发连锁更新外,删除节点也可能会引发连锁更新