首页 > 数据库 >Redis-数据结构与对象-整数集合

Redis-数据结构与对象-整数集合

时间:2023-01-09 16:57:08浏览次数:36  
标签:encoding Redis 整数 类型 数组 集合 数据结构 contents

整数集合

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

虽然 intset 结构将 contents 属性声明为 int8_t 类型的数组, 但实际上 contents 数组并不保存任何 int8_t 类型的值 —— contents 数组的真正类型取决于 encoding 属性的值:

  • 如果 encoding 属性的值为 INTSET_ENC_INT16 , 那么 contents 就是 int16_t 类型的数组, 数组里的每个项都是int16_t 类型的整数值 。
  • 如果 encoding 属性的值为 INTSET_ENC_INT32 , 那么 contents 就是 int32_t 类型的数组, 数组里的每个项都是int32_t 类型的整数值 。
  • 如果 encoding 属性的值为 INTSET_ENC_INT64 , 那么 contents 就是 int64_t 类型的数组, 数组里的每个项都是int64_t 类型的整数值 。

集合中的整数从小到大顺序保存。


向整数集合添加比当前元素类型长的元素时,将需要先对整数集合进行升级,即更换范围更大的编码并重新排列元素位置。

一旦升级,不会再降级。

标签:encoding,Redis,整数,类型,数组,集合,数据结构,contents
From: https://www.cnblogs.com/gcr277/p/17037525.html

相关文章