集合对象的编码可以是intset或者hashtable。

1.定义 

intset编码的集合对象使用整数集合作为底层实现,集合对象包含的所有元素都被保存在整数集合里面。

 11 Redis-集合对象

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

11 Redis-集合对象

2.编码转换

当集合对象可以同时满足以下两个条件时,对象使用intset编码:

  • 集合对象保存的所有元素都是整数值。
  • 集合对象保存的元素数量不超过512个。

不能同时满足以上两个条件的集合对象需要使用hashtable编码。

注意:以上第二个条件的上限值是可以修改的,对应的配置选项为set-max-intset-entries。

相关文章:

  • 2021-08-20
  • 2021-11-01
  • 2021-09-27
  • 2022-12-23
  • 2022-12-23
  • 2021-04-27
  • 2021-07-16
  • 2022-12-23
猜你喜欢
  • 2021-10-20
  • 2021-04-06
  • 2021-10-31
  • 2021-07-24
  • 2022-01-15
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案