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)

相关推荐

  • 抖音刷赞推广平台便宜,全网最便宜的平台!

    技术抖音刷赞推广平台便宜,全网最便宜的平台!抖音快速涨粉方法抖音无疑是目前新媒体里面涨粉最容易,涨粉最快的平台了。前有成都小甜甜一夜涨粉500万,后有灵魂当铺一天涨粉75万。这种涨粉速度在其他平台是想都不敢想象的。不过,

    测评 2021年11月9日
  • 如何分析大数据中的网络协议

    技术如何分析大数据中的网络协议这篇文章将为大家详细讲解有关如何分析大数据中的网络协议,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。一、什么是协议协议,相当于正常交流必须掌

    攻略 2021年12月9日
  • 影响mysqld安全的几个选项分别是什么

    技术影响mysqld安全的几个选项分别是什么影响mysqld安全的几个选项分别是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。影响mysqld安全的几个

    攻略 2021年11月17日
  • 如何增加抖音粉丝数量,如何快速增长抖音粉丝?

    技术如何增加抖音粉丝数量,如何快速增长抖音粉丝?抖音快速涨粉方法抖音无疑是目前新媒体里面涨粉最容易,涨粉最快的平台了。前有成都小甜甜一夜涨粉500万,后有灵魂当铺一天涨粉75万。这种涨粉速度在其他平台是想都不敢想象的。不

    测评 2021年11月11日
  • 滥竽充数的道理,滥竽充数告诉我们什么道理

    技术滥竽充数的道理,滥竽充数告诉我们什么道理滥竽充数讲的是战国时有个国军齐宣王喜欢听乐队演奏滥竽充数的道理,而且人越多合奏越觉得气派动听。根本不懂音乐的南郭先生了解了齐宣王的喜好,蒙混到合奏队伍之中,假模假式的吹的很卖力

    生活 2021年10月26日
  • c语言中typedef和define的区别是什么

    技术c语言中typedef和define的区别是什么这篇文章主要介绍“c语言中typedef和define的区别是什么”,在日常操作中,相信很多人在c语言中typedef和define的区别是什么问题上存在疑惑,小编查阅

    攻略 2021年10月28日