Redis的ziplist到ListPack
Redis的压缩列表ziplist到紧凑列表listpack ziplist 的结构(老版本用的) 大概长这样: 12345[zlbytes][zltail][zllen][entry1][entry2]...[entryN][0xFF]● *zlbytes*,记录整个压缩列表占用对内存字节数;● *zltail*,记录压缩列表「尾部」节点距离起始地址由多少字节,也就是列表尾的偏移量;● *zllen*,记录压缩列表包含的节点数量;● *0xFF*,标记压缩列表的结束点,固定值 0xFF(十进制255)。 每个 entry 里: 1[prevlen][encoding][data] prevlen:前一个 entry 的长度(1 或 5 字节) encoding:当前 entry 是字符串还是整数,长度是多少 data:真正的数据 listpack 的结构(新版本用的) 大概长这样: 1234[total_bytes][count][entry1][entry2]...[entryN][0xFF]total_bytes:整个 listpack...



