Hash
Hash 和 ZSet 其实很像,元素都不允许重复。只不过 ZSet 需要额外排序,而 Hash 不需要排序。所以,Hash 底层的编码方式也有两种,分别是 ZipList 和 HT。
Hash 默认采用 ZipList 编码,以节省内存。ZipList 中相邻的两个 entry 分别保存 key 和 value。
当数据量较大时,会转为 HT 编码,触发条件如下(满足任意条件即可):
- ZipList 中的元素数量超过了
hash-max-ziplist-entries
(默认 512) - ZipList 中的任意 entry(key 或者 value)大小超过了
hash-max-ziplist-value
字节(默认 64 字节)