Redis数据结构之整数集合

目录

基本数据结构

例子

升级

升级之后新元素的摆放位置

好处

降级


整数集合可以理解为一个有序(升序)的不允许元素重复的数组。

基本数据结构

intset会根据 编码格式分配空间。

 

 

 

例子

 

升级

当新添加的元素超过了当前编码格式所能 表示的范围,就会进行升级。

升级整数集合并添加新元素共分为三步进行:


1)根据新元素的类型,扩展整数集合底层数组的空间大小,并为新元素分配空间。
2)将底层数组现有的所有元素都转换成与新元素相同的类型,并将类型转换后的元素
放置到正确的位上,而且在放置元素的过程中,需要继续维持底层数组的有序性质不变
3)将新元素添加到底层数组里面。

升级之后新元素的摆放位置


因为引发升级的新元素的长度总是比整数集合现有所有元素的长度都大,所以这个
新元素的值要么就大于所有现有元素,要么就小于所有现有元素

索引新元素的位置要么是底层数组的最开头(索引0),要么是底层数组的最末尾(索引 length-1)
 

好处

提升了该数据结构的灵活性的同时尽可能的节约内存

降级

整数集合不支持降级操作,一旦对数组进行了升级,编码就会一直保持升级后的状态

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

trigger333

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值