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 协议》,转载必须注明作者和本文链接
关于 LearnKu
推荐文章: