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
类型的整数值 。
集合中的整数从小到大顺序保存。
向整数集合添加比当前元素类型长的元素时,将需要先对整数集合进行升级,即更换范围更大的编码并重新排列元素位置。
一旦升级,不会再降级。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义