数据库 ·

Redis学习笔记04-集合对象

编码可以是intset或者hashtable

intset

使用整数集合作为底层实现,集合对象都被保存在整数集合里面

hashtable

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

编码转换

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

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

不能满足这两个条件的需要用hashtable编码。

第二个条件的上限值可以修改,,涉及到配置文件的选项:

set-max-intset-entries

参考资料

Redis设计与实现》

参与评论