Redis数据结构之整数集合

发布于:2022-10-30 ⋅ 阅读:(300) ⋅ 点赞:(0)

目录

基本数据结构

例子

升级

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

好处

降级


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

基本数据结构

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

 

 

 

例子

 

升级

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

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


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

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


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

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

好处

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

降级

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


网站公告

今日签到

点亮在社区的每一天
去签到