《Redis设计与实现》之第六章:整数集合

整数集合是Redis用来保存整数值的集合抽象数据结构,它可以保存类型为int16_t,int32_t,int64_t的整数值,并且保证集合中不会出现重复元素

1.整数集合的实现

typedef struct intset{

  //编码方式

  uint32_t encoding;

  //集合中包含的元素数量

  uint32_t length;

  //保存元素的数组

  int8_t contents[];

}

contents数组是整数集合的底层实现,整数集合中的每个元素都是数组中的项,各个项在数组中按值从小到大有序排列,并且数组中不包含重复项,contents数组的真正类型取决于encoding属性。比如:

如果encoding属性的值为INTSET_ENC_INT16,那么contents就是一个int16_t类型的数组,数组中的每个项都是一个int16_t类型的整数值。

2.升级

????

原文地址:https://www.cnblogs.com/inspred/p/10664213.html