脚本宝典收集整理的这篇文章主要介绍了快速整明白Redis中的整数集合到底是个啥,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
整数集合(intset)是Redis集合数据类型的内部编码之一,当集合数据类型中的元素都是整数并且元素数量较少的时候,Redis就使用整数集合作为内部编码。
整数集合(intset)中可以保存int16_t
、int32_t
和int64_t
类型的整数,而且保证整数集合中元素不会重复。
整数集合(intset)的结构中包含三个属性:编码方式(encoding)、元素数量(length)和元素数组(contents)。
INTSET_ENC_INT16
、INTSET_ENC_INT32
、INTSET_ENC_INT64
。当编码方式为INTSET_ENC_INT16
的时候,元素数组就是一个int16_t
类型的数组,数组中的每个项都是int16_t
类型的整数(最小值为$-2^{15}$ = -32,768,最大值为$2^{15} - 1$ = 32,767)。
当编码方式为INTSET_ENC_INT32
的时候,元素数组就是一个int32_t
类型的数组,数组中的每个项都是int32_t
类型的整数(最小值为$-2^{31}$ = -2,147,483,648,最大值为$2^{31} - 1$ = 2,147,483,647)。
当编码方式为INTSET_ENC_INT64
的时候,元素数组就是一个int64_t
类型的数组,数组中的每个项都是int64_t
类型的整数(最小值为$-2^{63}$ = -9,223,372,036,854,775,808,最大值为$2^{63} - 1$ = 9,223,372,036,854,775,807)。
向整数集合添加元素的时候,如果新元素的类型比这个整数集合的编码方式还长,那么整数集合就是先进行升级,然后再把新元素添加进去。
升级的操作包括:
INTSET_ENC_INT16
升级到INTSET_ENC_INT32
。INTSET_ENC_INT16
升级到INTSET_ENC_INT64
。INTSET_ENC_INT32
升级到INTSET_ENC_INT64
。升级过程总共分为3步:
另外,整数集合是不支持降级操作的。即使元素被删除后,整数集合符合较短的编码方式,也不会有降级操作。
整数集合(intset)是Redis集合数据类型的内部编码之一,可以保存int16_t
、int32_t
和int64_t
类型的整数。
整数集合(intset)的结构中包含三个属性:编码方式(encoding)、元素数量(length)和元素数组(contents)。
新增的元素的类型比整数集合的编码方式还长时,该整数集合会有升级操作。整数集合不支持降级操作。
最后,谢谢你这么帅,还给我点赞和关注。
微信公众号:万猫学社
微信扫描二维码
关注后回复「电子书」
获取12本Java必读技术书籍
以上是脚本宝典为你收集整理的快速整明白Redis中的整数集合到底是个啥全部内容,希望文章能够帮你解决快速整明白Redis中的整数集合到底是个啥所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。