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)

相关推荐

  • 主机连接VMware虚拟机

    技术主机连接VMware虚拟机 主机连接VMware虚拟机一、遇到的问题
    (1)虚拟机能ping通主机,但主机ping不通虚拟机
    原因
    VMware Network Adapter VMnet8网络适配

    礼包 2021年11月18日
  • Prometheus 查询语言 PromQL 的 CPU 使用率计算方法

    技术Prometheus 查询语言 PromQL 的 CPU 使用率计算方法 Prometheus 查询语言 PromQL 的 CPU 使用率计算方法Prometheus 查询语言 PromQL 的 C

    礼包 2021年11月26日
  • win7系统安装SQLServer2000的步骤是什么呢

    技术win7系统安装SQLServer2000的步骤是什么呢本篇文章给大家分享的是有关win7系统安装SQLServer2000的步骤是什么呢,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,

    攻略 2021年12月1日
  • 如何用jquery删除html标签

    技术如何用jquery删除html标签本篇内容介绍了“如何用jquery删除html标签”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,

    攻略 2021年11月1日
  • 怎么提高下载速度,怎样才能提高下载速度啊

    技术怎么提高下载速度,怎样才能提高下载速度啊国内ADSL用户的带宽一般都是1M、2M、3M的,理论上的下载速度分别是128K/S、256K/S、384K/S怎么提高下载速度。突发速度会更高。 如果用户在下载时速度能达到理

    生活 2021年10月28日
  • postman中form-data在java中怎么实现(postman怎么传string数组)

    技术postman怎么实现传递ArrayList 给后台小编给大家分享一下postman怎么实现传递ArrayList 给后台,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!postman 传递 Arra

    攻略 2021年12月18日