美文网首页
redis(5)整数集合

redis(5)整数集合

作者: 大飞飞_s8 | 来源:发表于2019-09-26 19:40 被阅读0次

1、整数集合(intset)当一个集合键只包含整数值元素,且数量不多时,底层是整数集合,可以保存int16 int32 int64

contents数组是整数集合的底层实现,整数集合每个元素都是contents数组的一个项,从小到大排序,无重复项 length:元素数量 encoding:intset_enc_16 intset_enc_32  intset_enc_64

2、升级

2.1、集合添加新元素,新元素的类型比集合所有元素类型都要长时,需要进行升级(upgrade),升级分为三步

2.2、第一步,根据新元素类型,扩展集合底层数组空间大小,并且为新元素分配空间

第二步、将底层数组现有的所有元素转换成与新元素相同的类型,并将类型转换后的元素放置到正确的位置上,放置过程,继续维持底层数组有序性不变

第三步、将新元素添加到底层数组里面

2.3、因为每次向整数集合添加新元素都可能会引起升级,每次升级都要对所有已有元素进行类型转换,所以添加新元素时间复杂度是o(N)

3、升级的好处

3.1、一提升整数集合的灵活性

因为c语言是静态类型语言,为了避免类型错误,通常不会将两种不同类型的值放在同一个数据结构里面

3.2、尽可能地节省内存

int_16 会判断升级为int_32,或者int_64,而不是直接使用int_64

4.整数集合不支持降级操作

相关文章

  • redis(5)整数集合

    1、整数集合(intset)当一个集合键只包含整数值元素,且数量不多时,底层是整数集合,可以保存int16 int...

  • 6.整数集合

    整数集合 1. 整数集合的实现 整数集合是Redis用于保存整数值的集合抽象数据结构,它可以保存类型为int16_...

  • 整数集合

    整数集合 整数集合(intset)是 Redis 用于保存整数值的集合抽象数据结构, 它可以保存类型为 >int1...

  • redis 整数集合

    整数集合(intset)是集合键的底层实现之一: 当一个集合只包含整数值元素, 并且这个集合的元素数量不多时, R...

  • Redis 整数集合

    整数集合是 Redis 用于保存整数值的有序的集合抽象数据结构,当一个集合只包含整数值元素,并且这个集合的元素数量...

  • 第 6 章 整数集合

    整数集合是集合键的底层实现之一,当一个集合只包含整数值元素,并且这个集合的数量不多时,Redis 就会使用整数集合...

  • 快速整明白Redis中的整数集合到底是个啥

    整数集合简介 整数集合(intset)是Redis集合数据类型的内部编码之一,当集合数据类型中的元素都是整数并且元...

  • 6 整数集合

    整数集合(intset)是集合键的底层实现之一,当一个集合值包含整数值元素,并且元素不多,Redis就会使用整数集...

  • 6.整数集合

    整数集合是集合键的底层实现之一,当一个集合只包含整数值元素,并且这个集合的元素数量不多时,Redis就会使用整数集...

  • 第六章 整数集合

    整数集合是集合键的底层实现之一,当一个集合只包含整数值元素,并且这个集合的元素数量不多时,Redis就会使用整数集...

网友评论

      本文标题:redis(5)整数集合

      本文链接:https://www.haomeiwen.com/subject/hfraectx.html