实验元数据 (Meta Data)
实验编号/标题:Redis List 底层数据结构实验
日期:2026-02-22
所属领域/标签:#Redis #数据结构
耗时:21:12 - 22:17
🎯 实验前:假设与目标 (Plan)
当前问题 (Problem):我需要了解 Redis List 的底层数据结构
实验目标 (Objective):验证并模拟 Redis List 的底层结构,查看 Redis 底层代码
核心假设 (Hypothesis):
Redis List 的值会根据 list 中元素的个数转换为 listpack 和 quicklist
🧪 实验中:执行步骤与变量 (Do)
准备工作/工具:
| |
配置文件
| |
控制变量 (Variable)
仅基于 List 结构进行实验
执行步骤 (Log):
子实验一:证明小 list 直接是 listpack
- 创建 list 查看编码
子实验二: 转换成 quicklist
- 批量塞入数据
- 查看编码
👁️ 实验后:现象与数据 (Check)
子实验一:证明小 list 直接是 listpack
返回 listpack 证明小 list 直接是 listpack
子实验二: 转换成 quicklist
返回 quicklist,证明 list 节点足够多会转换为 quicklist
🧠 深度复盘:分析与结论 (Act)
listpack 小 list
| |
quicklist 大 list
| |
链表 + 块的组合:用块减少指针开销,用链表支持两段 push/pop 和分段扩展
下一步行动 (Next Actions):
✅ 验证通过,纳入标准流程。
❓ 产生新问题:验证 Redis Set 的底层结构




