第6章 整数集合
来源:互联网 发布:云计算视频学院 编辑:程序博客网 时间:2024/06/01 20:25
整数集合是集合键的底层实现之一。
1. 整数集合的实现
Redis用于保存整数值的集合抽象数据结构,可以保存类型为int16_t、int32_t、int64_t的整数值,并且保证集合中不会出现重复元素。
每个intset.h/intset结构表示一个整数集合
typedef struct intset { // 保存元素所使用的类型的长度 uint32_t encoding; // 元素个数 uint32_t length; // 保存元素的数组 int8_t contents[]; } intset;
虽然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类型的整数值
- 。。。
2. 升级
新元素的长度过长
3.升级的好处
一个是提升整数集合的灵活性,另一个是尽可能的节约内存。
4. 降级
整数集合不支持降级操作,一旦对数组进行了升级,编码就会一直保持升级后的状态
5.整数集合API
intsetNew
intsetAdd
intsetRemove
insetFind
intsetRandom
intsetGet
intsetLen
intsetBlobLen 返回整数集合占用的内存字节数
0 0
- 第6章 整数集合
- 整数集合
- 第8章 集合
- 第09章:集合
- 第13章 集合
- 第13章 集合
- 第2章 集合 读书笔记
- 第9章 集合操作
- 第8章java 集合
- 第3章:对三个整数排序
- 1768 整数集合分解
- 整数集合分解
- 整数集合的实现
- Redis中的整数集合
- 集合的整数表示
- redis 整数集合
- redis:整数集合
- 集合的整数表示
- 到底这些配置有哪些是可以自己后期加装的,而哪些又是无法自己后期加装的呢?可以后装加的配置是否比原装的要划算呢?
- OpenCV 2.4.8组件结构全解析
- Git 命令 创建与合并分支
- Android 给控件自定义Shape背景
- ZT一篇从普华永道离开的人的文章:闲话我在普华永道的岁月
- 第6章 整数集合
- 同盾技术总监张新波:从零打造千万级实时风控云服务的秘籍
- 从今天开始,继续写一些技术类博客,分享给大家。
- iOS第三方框架集合
- #import与@class的区别
- 数据分析入门1
- linux网络编程5:gethostbyname&&向固定地址发起请求得到返回页面字符
- 深入理解PHP内存管理之谁动了我的内存
- 多线程下面日志输出-线程安全-消息队列循环输出