哈希对象的编码可以是ziplist或者hashtable。
ziplist编码的哈希对象使用压缩列表作为底层实现。每当有新的键值对要加入到哈希对象时,程序会先将保存键的节点推入到压缩列表表尾,然后再将保存值的节点推入到压缩列表表尾。
hashtable编码的哈希对象使用字典作为底层实现,
- 字典的每个键都是一个字符串对象,对象中保存了键值对的键。
- 字典的每个值都是一个字符串对象,对象中保存了键值对的值。
使用ziplist - 哈希对象保存的所有键值对的键和值的字符串长度都小于64字节;
- 哈希对象保存的键值对数量小于512个;
不满足以上要求的使用 hashtable编码