redis系列-整数集合

整数集合

  • 整数集合是redis中用来保存整数数值的集合抽象数据结构,d当一个集合中只包括整数值元素,并且这个集合的元素数量不多,redis会采用整数集合作为集合键实现,结构体如下
typedef struct intset {
	uint32_t encoding;//编码方式
	uint32_t length;//集合包含的元素数量
	int8_t contents[];//保存元素的数组

} intset;

encoding 编码有三种:
1.INTSET_ENC_INT16,当为这种时,content里面的每一项都是int16_t类型的整数值
2.INTSET_ENC_INT32,contents里面的每一项都是int32_t类型的整数值
3.INTSET_ENC_INT64,contents里面的每一项都是int64_t类型的整数值

整数集合升级
  • 当将一个新元素添加到整数集合中,新元素的类型比整数集合现有的 类型都要长时,整数集合需要升级,升级规则如下
  1. 根据新元素的类型,扩展整数集合底层数组的空间大小,并为新元素分配空间
  2. 将底层数组现有的所有元素都转换为与新元素相同的类型,并将类型转换后的元素放置到正确的位上,而且在放置元素的过程中,需要继续维持底层数组的有序性质不变
  3. 将新元素添加到底层数组里面
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值