redis---压缩列表
压缩列表是 列表键 和 哈希键 的底层实现之一。 当一个列表键只包含少量列表项,并且每个列表项要么就是小整数值,要么就是长度比较短的字符串 ,那么redis就会使用压缩列表来做列表键的底层实现。 另外,当一个哈希键只包含 少量键值对,并且每个键值对的键和值要么就是小整数值,要么就是长度比较短的字符串 ,那么redis就会使用压缩列表来做哈希键的底层实现,例如: # 后续更新将某些情况改造成了quicklist快速列表 127.0.0.1:6379 > rpush lst 1 3 5 10086 "hello" "world" ( integer ) 6 127.0.0.1:6379 > OBJECT ENCODING lst "quicklist" # zip;ist压缩列表 127.0.0.1:6379 > HMSET profile "name" "Jack" "age" 28 "job" "Programmer" OK 127.0.0.1:6379 > OBJECT ENCODING profile "ziplist" 1. 压缩列表的构成 压缩列表是由一些列特殊编码的连续内存块组成的顺序型数据结构,一个压缩列表可包含任意多个 节点(entry) , 每个节点可以保存一个 字节数组 或者 一个整数值 。下面两个图分别展示了压缩列表的组成部分和各部分的类型、长度及用途: 2.