zoukankan      html  css  js  c++  java
  • 第七章 压缩列表

    当一个列表键只包含少量的列表项,并且每个列表项要么就是小整数值,要么就是长度比较短的字符串,Redis就会使用压缩列表作为列表键的底层实现。设计的目的是为了节省内存。作为列表键和哈希键的实现之一。

    7.1 压缩列表的构成

      

      

      zlbytes:代表了整个压缩列表占用的内存字节数

      zltail:表尾距表头的字节数

      zllen:节点总数,最大只显示65535个,之后需要遍历才能获取节点数

    7.2 压缩列表节点的构成

      每个压缩节点(entry)由previous_entry_length,encoding,content三部分组成。保存一个字节数组或者一个整数值。

      previous_entry_length:记录前一个节点的长度,用于获取前一个节点在内存中的起始地址。如果前一个字节长度小于254,previous_entry_length大小为1字节、否则大小为5字节。

      encoding:记录content保存数据的类型及长度

      content:保存数据的值

    7.3 连锁更新

      在表头插入一个大节点,导致下一个节点的previous_entry_length扩展,继而影响下一个节点的大小,后续节点的调整,形成连锁反应。插入和删除都有可能造成连锁更新,但是在实际使用中,出现的连锁更新的情况很少。

      

      

    人生就像蒲公英,看似自由,其实身不由己。
  • 相关阅读:
    BEGIN
    bdflush
    BASH BUILTIN COMMANDS 内建命令
    程序 算法与数据结构
    ThinkPHP 3.2.2 在 volist 多重循环嵌套中使用 if 判断标签
    Java实现 蓝桥杯 算法提高 矩形靶
    Java实现 蓝桥杯 算法提高 矩形靶
    Java实现 蓝桥杯 算法提高 矩形靶
    Java实现 蓝桥杯 算法提高 歌唱比赛
    Java实现 蓝桥杯 算法提高 歌唱比赛
  • 原文地址:https://www.cnblogs.com/walker993/p/14438035.html
Copyright © 2011-2022 走看看