这门课导读:从零实现 KV 存储

很多开发者只会调用 Redis 或 LevelDB 等现成组件,却从未真正理解它们如何落地。当你需要在项目中自研存储引擎、排查磁盘 IO 瓶颈或做底层架构选型时,往往会对内存映射、并发写入、数据清理等机制一头雾水。这门课解决的核心问题是:帮你打通从“调用现成组件”到“自主掌控底层逻辑”的最后一公里。学完,你不再受制于第三方库的 黑盒 ,能在实际工作中独立评估和优化存储层。

适合什么基础

这门课不适合零基础转行小白,你需要至少有一年以上编程经验,并且熟悉一门后端语言(本课提供 Go 和 Rust 双语实现)。如果你对操作系统的基本概念、文件系统结构和内存管理机制有初步了解,学起来会事半功倍;如果没有,部分底层概念可能需要花额外时间补课。

建议先看哪几块

建议按模块顺序学习,不要跳步。第一块是环境搭建和内存磁盘设计,这是存储的骨架;第二块是数据读写流程和启动流程,理解数据怎么进得来、出得去;第三块是原子写、数据清理和内存索引优化,这是性能和稳定性的关键。

学完能独立做什么

学完,你具备独立设计和实现一个具备基本 CRUD、并发写入和数据清理的 KV 存储引擎的能力。在排查磁盘 IO 瓶颈、理解索引失效原因时,有底气自己造轮子或调整架构,不再只能依赖经验猜测。

资料怎么配合练习

视频是讲解,代码是载体。建议边看视频边对照着敲 Go 或 Rust 代码,不要只看不动手。特别是原子写和数据清理部分,最好能在本地跑通一遍,体会不同实现方式带来的性能差异。遇到报错不要跳过,直接查源码,这是最直接的成长路径。

课程目录

课程目录71 集
  • 视频
  • 03 从零实现 KV 存储—环境搭建 - 飞书云文档.E37.mp4 12.06M
  • 04 从零实现 KV 存储—内存和磁盘设计 - 飞书云文档.E05.mp4 6.53G
  • 06 从零实现 KV 存储—数据库启动流程 - 飞书云文档.E45.mp4 7.97G
  • 07 从零实现 KV 存储—数据删除流程 - 飞书云文档.E21.mp4 33.90M
  • 08 从零实现 KV 存储—数据文件逻辑 - 飞书云文档.E14.mp4 7.34G
  • 0‬⁤⁣‍​​‍‍⁣⁣​⁢⁤‌​​⁣‬​⁡‌⁢⁡⁤‬⁤⁤⁡⁡⁡⁣‍⁤⁢‌‌⁤​​⁡‬⁢‌⁢5 从零实现 KV 存储—数据读写流程 - 飞书云文档.E38.mp4 165.84M
  • 10 从零实现 KV 存储—Close、Sync、迭代器 - 飞书云文档-rust.E39.mp4 5.81G
  • 11 从零实现 KV 存储—WriteBatch 原子写 - 飞书云文档-go编码部分.E26.mp4 129.48M
  • 11 从零实现 KV 存储—WriteBatch 原子写 - 飞书云文档-理论讲解.E36.mp4 60.19M
  • 12 从零实现 KV 存储—Merge 数据清理 - 飞书云文档-go编码部分.E07.mp4 143.32M
  • 12 从零实现 KV 存储—Merge 数据清理 - 飞书云文档-rust编码部分.E44.mp4 196.87M
  • 12 从零实现 KV 存储—Merge 数据清理 - 飞书云文档-理论讲解.E33.mp4 28.23M
  • 13 从零实现 KV 存储—内存索引优化 - 飞书云文档-go编码.E11.mp4 206.45M
  • 13 从零实现 KV 存储—内存索引优化 - 飞书云文档-rust编码.E32.mp4 3.07G
  • 13 从零实现 KV 存储—内存索引优化 - 飞书云文档-理论讲解.E06.mp4 37.40M
  • 14 从零实现 KV 存储—文件 IO 优化 - 飞书云文档-go编码.E13.mp4 104.92M
  • 14 从零实现 KV 存储—文件 IO 优化 - 飞书云文档-rust编码.E24.mp4 145.03M
  • 14 从零实现 KV 存储—文件 IO 优化 - 飞书云文档-理论讲解.E20.mp4 21.49M
  • 16 从零实现 KV 存储—数据备份 - 飞书云文档-go编码.E23.mp4 20.95M
  • 16 从零实现 KV 存储—数据备份 - 飞书云文档-理论讲解.E12.mp4 5.45M
  • 17 从零实现 KV 存储—HTTP 接口 - 飞书云文档-go编码.E10.mp4 38.91M
  • 17 从零实现 KV 存储—HTTP 接口 - 飞书云文档-rust编码.E03.mp4 62.29M
  • 17 从零实现 KV 存储—HTTP 接口 - 飞书云文档-理论讲解.E41.mp4 10.58M
  • 18 从零实现 KV 存储—基准测试 - 飞书云文档-go编码.E15.mp4 26.50M
  • 18 从零实现 KV 存储—基准测试 - 飞书云文档-rust编码.E09.mp4 50.12M
  • 18 从零实现 KV 存储—基准测试 - 飞书云文档-理论讲解.E22.mp4 18.10M
  • 21 从零实现 KV 存储—Hash 结构支持 - 飞书云文档-go编码.E08.mp4 100.60M
  • 21 从零实现 KV 存储—Hash 结构支持 - 飞书云文档-rust编码.E19.mp4 104.47M
  • 21 从零实现 KV 存储—Hash 结构支持 - 飞书云文档-理论讲解.E04.mp4 12.05M
  • ‍⁡‌​‍​‍⁤​​​‍⁡‌‌⁣⁣⁣​​​⁤​⁢​‍‌​⁣​⁡​‍⁣‌‍⁡‌⁡⁢​‌​​15 数据 Merge 优化-rust编码.E30.mp4 330.84M
  • ⁡​⁢‌‬​⁢‌⁤‬​⁣‌‍⁡​​⁤​​​⁡‌⁢‌⁡‍⁤‌⁢​​‍⁡⁤‬‌‌‌‍‌⁣⁢‬⁡⁢‍23 从零实现 KV 存储—List 结构支持 - 飞书云文档.E31.mp4 10.23M
  • ⁡​⁢‌‬​⁢‌⁤‬​⁣‌‍⁡​​⁤​​​⁡‌⁢‌⁡‍⁤‌⁢​​‍⁡⁤‬‌‌‌‍‌⁣⁢‬⁡⁢‍23 从零实现 KV 存储—List 结构支持 - 飞书云文档_go编码.E29.mp4 46.91M
  • ⁡​⁢‌‬​⁢‌⁤‬​⁣‌‍⁡​​⁤​​​⁡‌⁢‌⁡‍⁤‌⁢​​‍⁡⁤‬‌‌‌‍‌⁣⁢‬⁡⁢‍23 从零实现 KV 存储—List 结构支持 - 飞书云文档_rust编码.E27.mp4 49.07M
  • ‬⁣⁣⁣​‍⁢⁤​‌⁢‌⁡‬​‬⁢⁢​⁣‬⁡ ​​‍⁤‌⁡⁤⁤⁢⁢​⁢‌⁤⁤⁣​⁡⁤‌⁤⁤​11 从零实现 KV 存储—WriteBatch 原子写 - 飞书云文档-rust.mp4 7.77G
  • ‬⁢‍‍​‬​⁢​⁤‬‍⁡⁡‌​⁤⁡‌​⁢⁡​​​​‍⁤‍⁤‍⁡‍⁡⁤‬‌⁣‌​‬‍​‬​‌19 从零实现 KV 存储—Redis 数据结构设计 - 飞书云文档.E35.mp4 49.64M
  • ‍‌‌⁢⁤​​⁢‬⁤‍‍​⁤​⁣​⁤⁢‬​‍‌⁢⁡‌⁤⁤⁡‍‬‍⁣​​​‬‬‬⁡‌‬‬09 从零实现 KV 存储—LogRecord 编解码 - 飞书云文档.E43.mp4 5.96G
  • ‍‍ ‌⁡⁢​⁢⁡⁣‍⁢‍​‌⁡⁤⁢‬⁢​​⁢⁡‬‬​‍⁢‌⁤​⁢‌⁤ ‬​⁡​​‬⁢‬​⁣10 从零实现 KV 存储—Close、Sync、迭代器 - 飞书云文档.E42.mp4 7.90G
  • ‍‬⁡‌​‍​‍⁤​​​‍⁡‌‌⁣⁣⁣​​​⁤​‬⁢​‍‌​⁣​⁡​‍⁣‌‍⁡‌⁡⁢​‌​​15 从零实现 KV 存储—数据 Merge 优化 - 飞书云文档-go编码.E01.mp4 127.34M
  • ‍‬⁡‌​‍​‍⁤​​​‍⁡‌‌⁣⁣⁣​​​⁤​‬⁢​‍‌​⁣​⁡​‍⁣‌‍⁡‌⁡⁢​‌​​15 从零实现 KV 存储—数据 Merge 优化 - 飞书云文档-理论讲解.E18.mp4 18.43M
  • ‍‌​⁢‍⁢​​⁢‬‌‌⁤⁡‬⁢‌​‬⁤⁡⁢‬‌‌⁡‍⁡⁣‌⁡⁣‬‌⁤⁢⁣‍​⁣⁤​​‍‍⁡⁡16 从零实现 KV 存储—数据备份 - 飞书云文档-rust编码.E02.mp4 23.67M
  • ‍‌⁤​​⁡‬⁣‍⁢​‬​‍⁢⁢⁣‌‍​​‍​⁤​‬⁡⁡‍⁢⁢​⁡‬⁤⁣⁤​​‍​‍⁢⁡‍⁣‍20 从零实现 KV 存储—String 结构支持 - 飞书云文档-go编码.E17.mp4 44.97M
  • ‍‌⁤​​⁡‬⁣‍⁢​‬​‍⁢⁢⁣‌‍​​‍​⁤​‬⁡⁡‍⁢⁢​⁡‬⁤⁣⁤​​‍​‍⁢⁡‍⁣‍20 从零实现 KV 存储—String 结构支持 - 飞书云文档-rust编码.E25.mp4 64.06M
  • ‍‌⁤​​⁡‬⁣‍⁢​‬​‍⁢⁢⁣‌‍​​‍​⁤​‬⁡⁡‍⁢⁢​⁡‬⁤⁣⁤​​‍​‍⁢⁡‍⁣‍20 从零实现 KV 存储—String 结构支持 - 飞书云文档-理论讲解.E46.mp4 12.02M
  • ‍⁢‬‍‌‬⁤​​⁢​‌​‍⁡⁡​‌​‍‬‬‌⁤‍‌⁤‬​⁤⁡⁢​​⁣⁡‌⁢‌⁣​‬⁢⁣​‌⁡⁣22 从零实现 KV 存储—Set 结构支持 - 飞书云文档-go编码.E34.mp4 46.46M
  • ‍⁢‬‍‌‬⁤​​⁢​‌​‍⁡⁡​‌​‍‬‬‌⁤‍‌⁤‬​⁤⁡⁢​​⁣⁡‌⁢‌⁣​‬⁢⁣​‌⁡⁣22 从零实现 KV 存储—Set 结构支持 - 飞书云文档-rust编码.E40.mp4 52.33M
  • ‍⁢‬‍‌‬⁤​​⁢​‌​‍⁡⁡​‌​‍‬‬‌⁤‍‌⁤‬​⁤⁡⁢​​⁣⁡‌⁢‌⁣​‬⁢⁣​‌⁡⁣22 从零实现 KV 存储—Set 结构支持 - 飞书云文档-理论讲解.E16.mp4 10.73M
  • 文档
  • 03-搭建环境.pdf 1.58M
  • 04-内存和磁盘设计.pdf 2.20M
  • 05-数据读写流程.pdf 2.22M
  • 06-数据库启动流程.pdf 2.20M
  • 07-数据删除流程.pdf 1.77M
  • 08-数据文件逻辑.pdf 2.74M
  • 09-LogRecord编码.pdf 3.99M
  • 10-close,sync,迭代器.pdf 2.05M
  • 11-writeBatch原子写.pdf 3.98M
  • 12-merge数据清理.pdf 2.05M
  • 13-内存索引优化.pdf 2.68M
  • 14-文件IO优化.pdf 2.17M
  • 15-数据merge优化.pdf 5.28M
  • 16-数据备份.pdf 1.09M
  • 17-HTTP接口.pdf 1.34M
  • 18-基准测试.pdf 1.08M
  • 19-redis数据结构支持.pdf 2.74M
  • 20-string结构支持.pdf 1.20M
  • 21-hash结构支持.pdf 1.24M
  • 22-set结构支持.pdf 1.03M
  • 23-List结构支持.pdf 1.10M
  • 24-Sorted Set支持.pdf 1.11M
  • 25-兼容redis协议.pdf 1.41M
  • 26-加餐学习汇总.pdf 671.99kb
  • kv-projects.exe 1.83M
  • 从零实现KV存储/
  • 04 从零实现 KV 存储—内存和磁盘设计 - 飞书.mp4