redis源码分析系列文章
[Redis源码系列]在Liunx安装和常见API
为什么要从Redis源码分析
String底层实现——动态字符串SDS
双向链表都不懂,还说懂Redis?
面试官:说说Redis的Hash底层 我:......(来自阅文的面试题)
Redis的跳跃表确定不了解下
前言
大噶好,今天仍然是元气满满的一天,抛开永远写不完的需求,拒绝要求贼变态的客户,单纯的学习技术,感受技术的魅力。(哈哈哈,皮一下很开森)
前面几周我们一起看了Redis底层数据结构,如动态字符串SDS,双向链表Adlist,字典Dict,跳跃表,如果有对Redis常见的类型或底层数据结构不明白的请看上面传送门。
今天来说下set的底层实现整数集合,如果有对set不明白的,常见的API使用这篇就不讲了,看上面的传送门哈。
整数集合概念整数集合是Redis设计的一种底层结构,是set的底层实现,当集合中只包含整数值元素,并且这个集合元素数据不多时,会使用这种结构。但是如果不满足刚才的条件,会使用其他结构,这边暂时不讲哈。
下图为整数集合的实际组成,包括三个部分,分别是编码格式encoding,包含元素数量length,保存元素的数组contents。(这边只需要简单看下,下面针对每个模块详细说明哈