SET对象的底层编码
- SET对象的底层编码可以是intset或者dict;
1. 使用intset做底层实现
2. 使用dict做底层实现
3. 编码转换
- 当集合对象可以同时满足下面两个条件时,使用intset编码,否则使用hashtable编码。
- 集合对象保存的所有元素都是整数;
- 集合对象保存的元素数量不超过512个;
- redis.conf可以改条件
# 集合对象使用ziplist编码,保存的元素超过多少个,就会转为hashtable编码 set-max-intset-entries 512
sadd number 1 3 5
object encoding number #intset
sadd number seven
object encoding number #hashtable