压缩列表(ziplist)是列表键和哈希键的底层实现之一。当一个列表键只包含少量列表项,并且每个列表项要么就是小整数值,要么就是长度比较短的字符串,那么Redis就会使用压缩列表来做列表键的底层实现。
7.2 压缩列表节点的构成
每个节点可以保存一个字节数组或者一个整数值
字节数组长度:63或16383或4294967295位
整数值长度: 4、8、16、24、32、64位
每个节点都由previous_entry_length、encoding、content三部分组成
previous_entry_length:记录了压缩列表中前一个节点的长度,1字节或5字节
7.3 连锁更新
7.5 重点回顾
Ⅰ压缩列表是一种为节约内存而开发的顺序型数据结构
Ⅱ压缩列表被用作列表键和哈希键的底层实现之一
Ⅲ压缩列表可以包含多个结点,每个结点可以保存一个字节数组或者整数值
Ⅳ添加新结点到压缩列表,或者从压缩列表中删除节点,可能会引发连锁更新操作,但这种操作出现的几率并不高