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

整数集合

整数集合(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 类型的整数值 。

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


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

一旦升级,不会再降级。

posted @   Saturn5  阅读(16)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
点击右上角即可分享
微信分享提示