首页/数据/数据库速查/List 编码(listpack / quicklist)
本包目录(495 条)
MySQL 基础与连接36 条SQL 语法52 条用户与权限21 条备份与恢复56 条主从复制与高可用53 条性能与调优57 条
Redis 命令96 条
Redis 运维与场景124 条

List 编码(listpack / quicklist)

小 List 用 listpack,超过 list-max-listpack-size(默认 128,正数=元素个数上限)后转为 quicklist 的多节点结构;7.2 起 quicklist 由 listpack 节点构成。

数据库速查数据更新于 2026-10-12

观察

观察
RPUSH small 1 2 3
OBJECT ENCODING small        # listpack
CONFIG GET list-max-listpack-size   # 128
# 插入超过阈值后:
# OBJECT ENCODING 变为 quicklist(大列表)
listpack元素少且小,紧凑连续
quicklist链表+节点,头尾操作 O(1)
阈值list-max-listpack-size;负值表示按大小限制
List 的头尾操作是 O(1) 与编码无关;编码只影响内存占用与中间操作的常数,别把它当性能开关。

易错点

  • 以为 quicklist 节点数完全由该参数决定:还与单元素大小相关(list-max-listpack-size 为负时按字节限制)
  • 只看编码判断内存:真正占多少用 MEMORY USAGE 单键实测

数据来源与参考

  • Redis 官方文档: OBJECT ENCODING
  • Redis 官方文档: 内存优化(list-max-listpack-size)

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌