版本:3.0.7
1.源文件
intset.h
intset.c
2.整数集合数据结构
typedef struct intset {
// 编码方式
uint32_t encoding;
// 集合包含的元素数量
uint32_t length;
// 保存元素的数组
int8_t contents[];
} intset;
/*
* intset 的编码方式
*/
/* Note that these encodings are ordered, so:
* INTSET_ENC_INT16 < INTSET_ENC_INT32 < INTSET_ENC_INT64. */
#define INTSET_ENC_INT16 (sizeof(int16_t))
#define INTSET_ENC_INT32 (sizeof(int32_t))
#define INTSET_ENC_INT64 (sizeof(int64_t))
3.空间分布
4.一些特性
4.1 当使用redis集合键,且数值都是整数时,那么集合键的底层实现就是整数集合
4.2 整数集合支持三种数据编码,分别是16位、32位、64位数值
4.3 整数集合会自动发生升级,也就是当前编码不足以装下新插入的数据时,就会把整个集合升级,但是不会发生降级
4.4 整数集合比字符串集合在某种情况下更加节省内存,比如说数值比较大的情况下
End;