首页/数据/Redis 进阶速查/quicklist 与 list-max-listpack-size
数据结构与选型42 条

quicklist 与 list-max-listpack-size

List 由 quicklist(多个 listpack 节点组成的双向链表)实现,节点字节上限由 list-max-listpack-size 控制:正数按元素个数,负数按大小(-1=4KB、-2=8KB 依此类推)。

Redis 进阶速查数据更新于 2026-10-12
结构双向链表 + listpack 节点
配置list-max-listpack-size(7.0 命名)
平衡节点越大越省指针开销、修改越慢

示例

示例
redis-cli CONFIG GET list-max-listpack-size
redis-cli CONFIG SET list-max-listpack-size 128
redis-cli LPUSH queue a b c
redis-cli OBJECT ENCODING queue   # quicklist
负数含义:-1=4KB、-2=8KB、-3=16KB,节点越小则一个 List 的节点越多、指针开销越大。

易错点

  • 调整节点容量只影响新建或后续分裂的节点,存量键不会立即重排
  • 用 List 做消息队列时节点大、元素大都会拉长单次操作阻塞时间,需要控制单元素体积

数据来源与参考

  • Redis 官方文档:Lists 数据类型
  • redis.conf:list-max-listpack-size 注释
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌