压缩列表

最后更新于:2022-04-01 21:35:48

# 压缩列表 压缩列表(ziplist)是列表键和哈希键的底层实现之一。 当一个列表键只包含少量列表项, 并且每个列表项要么就是小整数值, 要么就是长度比较短的字符串, 那么 Redis 就会使用压缩列表来做列表键的底层实现。 比如说, 执行以下命令将创建一个压缩列表实现的列表键: ~~~ redis> RPUSH lst 1 3 5 10086 "hello" "world" (integer) 6 redis> OBJECT ENCODING lst "ziplist" ~~~ 因为列表键里面包含的都是 `1` 、 `3` 、 `5` 、 `10086` 这样的小整数值, 以及 `"hello"` 、 `"world"` 这样的短字符串。 另外, 当一个哈希键只包含少量键值对, 并且每个键值对的键和值要么就是小整数值, 要么就是长度比较短的字符串, 那么 Redis 就会使用压缩列表来做哈希键的底层实现。 举个例子, 执行以下命令将创建一个压缩列表实现的哈希键: ~~~ redis> HMSET profile "name" "Jack" "age" 28 "job" "Programmer" OK redis> OBJECT ENCODING profile "ziplist" ~~~ 因为哈希键里面包含的所有键和值都是小整数值或者短字符串。 本章将对压缩列表的定义以及相关操作进行详细的介绍。
';