集合对象的编码可以是 intset 或者 hashtable
intset 编码的集合对象使用整数集合作为底层实现
intset 编码的集合对象hashtable 编码的集合对象使用字典作为底层实现,字典的每个键都是一个字符串对象,每个字符串对象包含一个集合元素,而字典的值则全部被设置为 NULL
hashtable 编码的集合对象编码的转换
当集合对象可以同时满足以下两个条件时,对象使用 intset 编码:
- 集合对象保存的所有元素都是整数值
- 集合对象保存的元素数量不超过 512 个
不能满足这两个条件的集合对象需要使用 hashtable 编码
第二个条件的上限值可修改,由 set-max-intset-entries 控制
网友评论