首页/数据/Redis 进阶速查/listpack 紧凑列表结构
数据结构与选型42 条

listpack 紧凑列表结构

listpack 是 7.0 起取代 ziplist 的顺序紧凑结构:整块内存连续存放、头部记录总长,作为小 Hash、小 ZSet 与 quicklist 节点的底层容器。

Redis 进阶速查数据更新于 2026-10-12
出现位置Hash/ZSet 小对象、quicklist 节点
特点连续内存、紧凑、避免级联更新
查看OBJECT ENCODING 返回 listpack

示例

示例
redis-cli HSET cfg:app theme dark lang zh
redis-cli OBJECT ENCODING cfg:app   # listpack
redis-cli ZADD z 1 a 2 b
redis-cli OBJECT ENCODING z         # listpack
listpack 解决了 ziplist 级联更新的问题:修改元素不会引发后续所有节点连续重写,适合频繁小幅更新的小对象。

易错点

  • listpack 仍要求整块连续内存,超大对象在转常规编码前不宜把阈值调得过大
  • 不同版本命名不同(旧版为 ziplist),看到 ziplist 相关配置项属于兼容别名

数据来源与参考

  • Redis 7.0 Release Notes:listpack 全面替代 ziplist
  • Redis 官方文档:内存优化相关说明
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌