Redis底层和缓存雪崩,击穿,穿透-2.Redis数据结构—inset

Inset是Redis中set集合的一种实现方式,基于整数数组来实现,并且具备长度可变、有序等特征

为了方便查找,Redis会将inset中所有的整数按照升序依次保存在contents数组中,结构如图:

在这里插入图片描述

现在,数组中每个数字都在int16_t的范围内,因此采用的编码方式是INTSET_ENC_INT16,每部分占用的字节大小为:

encoding:4字节

length:4字节
contents:2字节 * 3 = 6字节

小总结:

Intset可以看做是特殊的整数数组,具备一些特点:

  • Redis会确保Intset中的元素唯一、有序
  • 具备类型升级机制,可以节省内存空间
  • 底层采用二分查找方式来查询
上一篇:读取每一张DICOM文件的图像数据(二)