本文内容均来自《Redis设计与实现》一书
集合对象的编码可以是intset或者hashtable。
1.定义
intset编码的集合对象使用整数集合作为底层实现,集合对象包含的所有元素都被保存在整数集合里面。

hashtable编码的集合对象使用字典作为底层实现,字典的每个键都是一个字符串对象,每个字符串对象包含了一个集合元素,而字典的值全部被设置为NULL

2.编码转换
当集合对象可以同时满足以下两个条件时,对象使用intset编码:
- 集合对象保存的所有元素都是整数值。
- 集合对象保存的元素数量不超过512个。
不能同时满足以上两个条件的集合对象需要使用hashtable编码。
注意:以上第二个条件的上限值是可以修改的,对应的配置选项为set-max-intset-entries。

本文深入探讨了Redis中集合对象的两种编码方式:intset和hashtable。intset适用于整数值且数量不超过512个的集合,而hashtable则用于更复杂的数据结构。文章详细解释了编码转换的条件及过程。

1516

被折叠的 条评论
为什么被折叠?



