Redis的底层数据结构-整数集合

技术Redis的底层数据结构-整数集合 Redis的底层数据结构-整数集合整数集合(intset)是Redis用于保存整数值的集合抽象数据类型,它可以保存类型为int16_t、int32_t 或者int

Redis-整数集的底层数据结构

整数集是Redis用来存储整数值的集合抽象数据类型。它可以存储int16_t、int32_t或int64_t类型的整数值,并确保集合中不会有重复的元素。

定义如下:

typedef结构intset{

//编码方法

uint32_t编码;

//集合中包含的元素数量

uint32_t长度;

//保存元素数组

int8_t目录[];

} intset

整数集的每个元素都是内容数组的一个数据项,按从小到大的顺序排列,不包含任何重复项。

length属性记录内容数组的大小。

需要注意的是,虽然contents数组被声明为int8_t类型,但实际上contents数组并不保存任何int8_t类型的值,它的实类型是由编码决定的。

、升级

当新添加的元素类型比原集合元素类型长时,需要升级整数集合,将新元素放入整数集合中。具体步骤:

1.根据新元素类型,扩展整数集底部数组的大小,为新元素分配空间。

2.将基础数组的所有现有元素转换为与新元素相同类型的元素,并将转换后的元素放在正确的位置。在放置过程中,保持整个元素的顺序有序。

3.向整数集中添加新元素(确保顺序)。

升级可以大大节省内存。

、降级

整数不支持降级操作。一旦阵列升级,代码将保持升级状态。

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/81997.html

(0)

相关推荐

  • DM7 RAC数据库怎样恢复成单机数据库

    技术DM7 RAC数据库怎样恢复成单机数据库本篇文章为大家展示了DM7 RAC数据库怎样恢复成单机数据库,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。DM7 RAC数据库恢复成单

    攻略 2021年11月30日
  • 微信免单,周末微信支付怎么怎么能够免单

    技术微信免单,周末微信支付怎么怎么能够免单微信支付在春节期间推出摇一摇赢免单活动,意思就是如果你用微信支付就有机会获得免单奖励的,比如你在网上用微信支付买了一个月的qq音乐会员8元,用微信支付后会出现一个摇一摇获得免单机

    生活 2021年10月20日
  • 非极性分子,极性分子和非极性分子有哪些

    技术非极性分子,极性分子和非极性分子有哪些分子的极性(永久烷极)是由其中正、负电荷的“重心”是否重合所引起的。根据其分子在空间是否绝对对称来判定极性非极性分子,化学键极性的向量和——弱极矩μ则是其极性大小的客观标度.甲苯

    生活 2021年10月23日
  • xss漏洞工具xsser怎么用

    技术xss漏洞工具xsser怎么用这期内容当中小编将会给大家带来有关xss漏洞工具xsser怎么用,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。今天给大家介绍一款xss漏洞利用工具:x

    攻略 2021年12月9日
  • 对孩子的期望和鼓励的话,鼓励孩子学习进步的话十个字

    技术对孩子的期望和鼓励的话,鼓励孩子学习进步的话十个字文:花样年华 原创:花熹(cyp4290) 金秋时节,清风送爽,菊花遍地,开学的集结号即将吹起!孩子们,你们新的征程即将开始了! 陈老师忍不住又要把几句叮咛

    生活 2021年10月21日
  • 台式电脑屏幕亮度怎么调节,如何调节台式电脑屏幕亮度

    技术台式电脑屏幕亮度怎么调节,如何调节台式电脑屏幕亮度调节台式电脑屏幕亮度方法:首先鼠标右键单击桌面空白处台式电脑屏幕亮度怎么调节,选择NVIDIA的控制面板。其次需要点击调整桌面颜色设置,在选择颜色设置方式下方,选择使

    生活 2021年10月22日