Redis的底层数据结构-压缩列表

技术Redis的底层数据结构-压缩列表 Redis的底层数据结构-压缩列表压缩列表(ziplist)是Redis为了节省内存而开发的,是由一系列特殊编码的连续内存块组成的顺序型数据结构,一个压缩列表可以

Redis压缩列表的底层数据结构

Redis为节省内存而开发的压缩列表,是由一系列经过特殊编码的连续内存块组成的顺序数据结构。压缩列表可以包含任意数量的条目,每个条目可以包含一个字节数组或一个整数值。

压缩列表的原理:压缩列表并不是对数据利用某种算法进行压缩,而是将数据按照一定规则编码在一块连续的内存区域,目的是节省内存。

压缩列表的每个节点组成如下:

Previous _ entry _ engage:记录压缩列表中前一个字节的长度。previous _ entry _ engage的长度可以是1字节或5字节。如果前一个节点的长度小于254,则只需要一个字节来表示前一个节点的长度。如果前一个节点的长度大于或等于254,则previous_entry_ength的第一个字节是254,后面是四个字节,表示当前节点的前一个节点的长度。利用这个原理,即从当前节点位置减去前一个节点的长度就可以得到前一个节点的起始位置,压缩后的列表就可以从尾部遍历到头部。这有效地减少了内存的浪费。

编码:节点的编码存储节点内容的内容类型和长度。有两种编码类型,一种是字节数组,另一种是整数。编码区长度为1字节、2字节或5字节。

内容:内容区用于存储节点的内容,内容的类型和长度:内容由编码决定。

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/81994.html

(0)

相关推荐

  • 去角质产品排行榜10强,能否推荐一下脸部去角质的产品

    技术去角质产品排行榜10强,能否推荐一下脸部去角质的产品我用的是美肤宝精粹角质嗜喱去角质产品排行榜10强。这是一款智能去角质产品!也许有人会问,智能去角质产品,是不是就比普通的去角质产品去除的更多?结果恰恰相反!智能去角

    生活 2021年10月23日
  • 早餐的重要性,每天吃早餐对健康有什么意义

    技术早餐的重要性,每天吃早餐对健康有什么意义谢邀请早餐的重要性!吃早餐对人的健康是非常重要的。早餐不仅要吃,而且还要吃的好,吃的有营养。人经过晚饭后十几个小时的能量消耗,所剩的热能几乎没有了,若早饭不能及时补充,会直接影

    生活 2021年10月22日
  • python中类怎么定义

    技术python中类怎么定义这篇文章主要介绍了python中类怎么定义,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。类的定义# class是定义类的关键字

    攻略 2021年11月9日
  • Spring中接口注入的三种方式分别是什么

    技术Spring中接口注入的三种方式分别是什么本篇文章为大家展示了Spring中接口注入的三种方式分别是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Spring中 接口注入

    攻略 2021年10月27日
  • vxworks中的status什么意思(vxworks表有大小限制吗)

    技术vxworks中IO操作的TTY是什么意思这篇文章主要介绍vxworks中IO操作的TTY是什么意思,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!历史上, TTY是Teletypewrite

    攻略 2021年12月22日
  • python中定义类的方法有哪些

    技术python中定义类的方法有哪些本篇内容主要讲解“python中定义类的方法有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“python中定义类的方法有哪些”吧!py

    攻略 2021年11月30日