Redis数据结构的内部编码
数据结构 | 内部编码 | 说明 |
---|---|---|
string | int | 8个字节,长度小于20的长整型 |
embstr | 小于等于44个字符的字符串 | |
raw | 大于44个字符的字符串 | |
hash | ziplist | 压缩列表 |
哈希类型元素个数小于hash-max-ziplist-entries配置(默认512个) 同时所有值都小于hash-max-ziplist-value配置(默认64字节) 使用此编码 |
||
hashtable | 哈希表 | |
哈希类型元素个数大于hash-max-ziplist-entries配置(默认512个) 或者元素的值大于hash-max-ziplist-value配置(默认64字节) 使用此编码 |
||
list | ziplist | 压缩列表 |
列表类型元素个数小于hash-max-ziplist-entries配置(默认512个) 同时所有值都小于hash-max-ziplist-value配置(默认64字节) 使用此编码 |
||
linkedlist | 链表 | |
列表类型元素个数大于hash-max-ziplist-entries配置(默认512个) 或者元素的值大于hash-max-ziplist-value配置(默认64字节) 使用此编码 |
||
quicklist | 快速列表 | |
v3.2以后取代了压缩列表和链表作为列表的内部编码 | ||
set | intset | 整数集合 |
当集合元素都是整数且元素个数小于set-max-intset-entries配置(默认512个) 使用此编码 |
||
hashtable | 哈希表 | |
当集合元素不为整数或元素个数大于set-max-intset-entries配置(默认512个) 使用此编码 |
||
zset | ziplist | 压缩列表 |
当有序集合元素个数小于zset-max-ziplist-entries配置(默认128个) 同时每个元素的值都小于zset-max-ziplist-value配置(默认64字节) 使用此编码 |
||
skiplist | 跳跃表 | |
当有序集合元素个数大于zset-max-ziplist-entries配置(默认128个) 或者元素的值大于zset-max-ziplist-value配置(默认64字节) 使用此编码 |
本作品采用《CC 协议》,转载必须注明作者和本文链接