本文主要用来学习下,redis当中使用的压缩表
和跳跃表
,为什么在诸多的数据结构中,redis要选择他们作为自己的数据存储结构。
什么是压缩表?
压缩表是Redis为了
节约内存
而开发的,是由一系列特殊编码的连续内存块组成的顺序型(sequential)数据结构
。一个压缩列表可以包含任意多个节点(entry)
,每个节点可以保存一个字节数组或者一个整数值。
压缩表的构成
压缩表的构成如下所示:
压缩表各构成部分的含义说明:
属性 | 用途 |
---|---|
zlbytes | 记录整个压缩表占用的字节数;在对压缩列表进行内存重分配或者计算zlend时使用 |
zltail | 记录压缩表尾结点距离起始节点的字节距离 |
zllen | 记录压缩表包含的节点数 |