Redis源码剖析——列表对象
列表对象
列表对象的编码为ziplist或linkedlist
ziplist编码的列表对象
当满足下面两个条件时列表对象用ziplist编码
1. 列表对象保存的所有字符串元素的长度都小于等于64字节
2. 元素数量小于等于512
当执行RPUSH numbers 1 “three” 5 命令后numbers键的值对象的布局如下
linkedlist编码的列表对象
当不符合ziplist编码的两个条件时,会使用linkedlist
如执行命令RPUSH test “kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk”后(65个k)
test键的值对象的布局如图,将采用linkedlist编码