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

Redis的ZipList、SkipList和ListPack之间的区别

将这三种数据结构放在一起比较,是因为它们都是 Redis 实现 ZSet 的核心数据结构。

在Redis 7.0之前,ZSet 主要采用 ZipList 和 SkipList 两种结构实现。而自Redis 7.0起,ZipList被ListPack取代,因此当前ZSet的核心实现变为ListPack和SkipList。

其中SkipList是长期存在的实现方式,我们先来看它的特性。

SkipList(跳表)

跳表是一种基于链表的多层索引结构,通过在基础链表上增加多级索引来提升查询效率。相比普通链表,跳表能够在 O(log N) 时间复杂度内完成查找、插入和删除操作,并支持高效的范围查询(如 ZRANGEBYSCORE 等命令)。

优势:

  • 所有核心操作(插入/删除/查找)的时间复杂度均为O(log N)
  • 特别适合范围查询场景

不足:

  • 内存占用较高(需要维护多级指针)

ZipList(压缩列表)

ZipList采用连续内存存储方式,所有元素紧密排列,在小数据量时能显著减少内存使用。

优势:

  • 内存利用率极高(紧凑存储)
  • 适合小规模数据存储

不足:

  • 查询、插入和删除都是O(N)时间复杂度
  • 存在级联更新风险

正是由于这些特性差异,Redis 会在元素较少时使用 ZipList,数据量增大后自动转换为 SkipList。

ListPack(紧凑列表)

ListPack 是Redis 5.0引入的新型高效数据结构(7.0+版本正式替代 ZipList ),专为解决 ZipList 和 SkipList 的某些局限性而设计。

特点:

  • 适用于小型有序集合、列表和哈希
  • 比 ZipList 更灵活、适应性更强
  • 完美规避了级联更新问题

对比总结

特性SkipListZipListListPack
设计目标高效范围查询内存紧凑解决级联更新
内存布局多层链表连续内存块连续内存块
查询复杂度O(log N)O(n)O(n)
插入复杂度O(log N)O(1)~O(n²)O(1)
删除复杂度O(log N)O(1)~O(n²)O(1)
内存占用极低
版本支持全版本≤6.2≥5.0 (7.0+默认)
核心优势有序访问高效小数据内存优化无级联更新
主要缺点内存占用高级联更新范围查询效率低
适用场景有序集合(ZSet)小型Hash/Set/ZSet全类型小规模存储
http://www.xdnf.cn/news/16879.html

相关文章:

  • 【Linux】重生之从零开始学习运维之Mysql
  • Au速成班-多轨编辑流程
  • STM32学习记录--Day5
  • 《C++》STL--list容器详解
  • EasyExcel 公式计算大全
  • 谷歌Firebase动态链接将失效:如何选择深度链接替代方案?
  • 11.Layout-Pinia优化重复请求
  • 51单片机入门:模块化编程
  • 利用 AI 在 iPhone 上实现 App 文本情绪价值评估(下)
  • 【string类常见接口】
  • 智能Agent场景实战指南 Day 28:Agent成本控制与商业模式
  • C语言(02)——标准库函数大全(持续更新)
  • Spring Boot + MongoDB:从零开始手动配置 MongoConfig 实战
  • C语言:冒泡排序
  • 【3】交互式图表制作及应用方法
  • kafka快速部署、集成、调优
  • 香港正式启动稳定币牌照制度!推动中国的人民币国际化?
  • 智能Agent场景实战指南 Day 29:Agent市场趋势与前沿技术
  • ALOcc: Adaptive Lifting-based 3D Semantic Occupancy and
  • 异步函数被调用多次,多次处理同一个文件导致占用,如何让异步函数按顺序执行?
  • 【Node.js安装注意事项】-安装路径不能有空格
  • RustFS:高性能文件存储与部署解决方案(MinIO替代方案)
  • 10.Linux 用户和组的管理
  • 【智能协同云图库】第七期:基于AI调用阿里云百炼大模型,实现AI图片编辑功能
  • Apache Flink 2.1.0: 面向实时 Data + AI 全面升级,开启智能流处理新纪元
  • webpack面试题及详细答案80题(41-60)
  • 【科研绘图系列】R语言绘制环状分组显著性柱状堆积图
  • iOS 抓不到包怎么办?全流程排查思路与替代引导
  • 机械学习中的一些优化算法(以逻辑回归实现案例来讲解)
  • 带root权限_中国移动创维DT541_S905L3融合机器改机顶盒刷机教程 当贝纯净版安卓9.0系统线刷包 刷机包