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)

相关推荐

  • 小星星怎么折,用纸叠的小星星代表什么啊

    技术小星星怎么折,用纸叠的小星星代表什么啊幸运星数量所代表的含意:   01 你是我的唯一   02 两情相悦   03 我爱你   04 誓言、承诺   05 无悔   06 顺利   07 喜相逢   08 弥补  

    生活 2021年10月23日
  • C++中默认操作怎么定义

    技术C++中默认操作怎么定义本篇内容主要讲解“C++中默认操作怎么定义”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C++中默认操作怎么定义”吧!C.21:默认操作要定义就全

    攻略 2021年11月29日
  • java基础知识回顾之javaIO类--管道流PipedOutputStream和PipedIutputStream

    技术java基础知识回顾之javaIO类--管道流PipedOutputStream和PipedIutputStream java基础知识回顾之javaIO类--管道流PipedOutputStream

    礼包 2021年12月22日
  • 抖音刷粉网址,人工刷粉丝会被封号吗?

    技术抖音刷粉网址,人工刷粉丝会被封号吗?抖音是当下非常受欢迎的一个社交软件,这样一个宣传度广的社交平台自然会吸引很多商家入驻广告,也就会衍生出很多的带货网红。成长一个做宣传推广的带货网红,前提是要有人气要有粉丝关注才能有

    测评 2021年11月11日
  • 乘方的意义,30 用乘方的意义计算

    技术乘方的意义,30 用乘方的意义计算求n个相同因数乘积的运算,叫做乘方,乘方的结果叫做幂(power)乘方的意义。 其中,a叫做底数(base number),n叫做指数(exponent),当aⁿ看作a的n次方的结果

    生活 2021年10月20日
  • SQL数据库的优化原则有哪些

    技术SQL数据库的优化原则有哪些这期内容当中小编将会给大家带来有关SQL数据库的优化原则有哪些,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。关于SQL数据库优化的原则主要可以从以下几个

    攻略 2021年11月30日