对象编码 哈希对象的编码可以是ziplist或者hashtable ziplist ziplist编码的哈希对象使用压缩列表作为实现, 每当有新的键值对要加入到哈希对象时, 程序会先将保存了键的压缩列表节点推入到压缩列表表尾, 然后再将保存了值的压缩列表节点推入到压缩列表表尾. 优点 保存了同一键值对的两个节点总是紧挨在一起, 保存键的节点在前, 保存值的节点在后. 先添加到哈希对象中的键值对会被放在压缩列表的表头方向, 后来添加到哈希对象中的键值对会被放在压缩列表的表尾方向. hashtable hashtabl…

3月 29, 2021 0条评论 558点热度 1人点赞 阅读全文

集合对象的编码可以是intset或者hashtable. intset编码的集合 intset编码集合对象使用整数集合作为底层实现, 集合对象包含的所有元素都被保存在整数集合里面. hashtable hashtable编码的集合对象使用字典作为底层实现, 字典的每个键都是一个字符串对象, 每个字符串对象包含了一个集合元素。而字典的值全部被设置为NULL 编码转换 集合对象保存的所有元素都是整数值 集合对象保存的元素数量不超过512个 不能满足这两个条件的集合对象需要使用hashtable编码 编码转换条件设置 s…

3月 29, 2021 0条评论 614点热度 0人点赞 阅读全文

列表对象编码 列表对象可以是ziplist或者linkedlist两种。 编码转换条件 列表对象保存的所有字符串元素的长度都小于64字节 列表对象保存的元素数量小于512个 不能满足这两个条件的列表对象需要使用linkedlist编码 编码转换条件修改 list-max-ziplist-value: 用于修改能够保存的最大的字节数 list-max-ziplist-entries: 用于修改压缩列表在达到最大节点时, 就将压缩列表转换为链表 # Similarly to hashes, small lists ar…

3月 29, 2021 0条评论 546点热度 1人点赞 阅读全文