当前位置: 首页 > article >正文

3.30--Redis之常用数据结构--listpack(总结篇)------加油呀

quicklistNode 还是用了压缩列表来保存元素,压缩列表连锁更新的问题,来源于它的结构设计,所以要想彻底解决这个问题,需要设计一个新的数据结构。

listpack,目的是替代压缩列表,它最大特点是 listpack 中每个节点不再包含前一个节点的长度了,压缩列表每个节点正因为需要保存前一个节点的长度字段,就会有连锁更新的隐患。

listpack 结构
在这里插入图片描述

istpack entry 是 listpack 的节点

每个 listpack 节点结构如下:
在这里插入图片描述
主要包含三个方面内容:

1.encoding,定义该元素的编码类型,会对不同长度的整数和字符串进行编码;
2.data,实际存放的数据;
3.len,encoding+data的总长度

listpack 没有压缩列表中记录前一个节点长度的字段了,listpack 只记录当前节点的长度,当我们向 listpack 加入一个新元素的时候,不会影响其他节点的长度字段的变化,从而避免了压缩列表的连锁更新问题。


http://www.kler.cn/a/6264.html

相关文章:

  • 第十四届蓝桥杯大赛——真题训练第10天
  • STM32实验:串口接受和发送消息
  • MongoDB - 数据模型的设计模式
  • DDoS攻击原理,DDoS攻击怎么防护?
  • Nginx解决跨域问题(前端服务器,接口服务器)记录
  • Python 自动化指南(繁琐工作自动化)第二版:一、PYTHON 基础知识
  • 【群晖Drive私有云】利用cpolar内网穿透实现公网远程群晖Drive
  • for循环内线程池并发执行任务,等到子线程全部处理完任务,主线程在执行java的实现方式
  • c# 第一次作业
  • IU5706E低静态电流,同步升压直流-直流控制器
  • CSDN——Markdown编辑器——官方指导
  • 如果觉得上面太正式,请看小红书风格的“从数字化转型到智能化转型”
  • 二叉树全分析(超详细总结建议收藏)
  • ServletAPI详解(二)-HttpServlet类
  • 《SRE实战》实践
  • Linux命令·iostat
  • WSPD:平面最近邻+t-spanner+近似欧氏距离MST(程设实习)
  • 搭建Git服务器-Git钩子的使用
  • 进化吧Java接口兽
  • 代码生成- 引言