🚀 用 C++ 从零手写一个「键值数据库」?我真写了!
前段时间我做了一件 “硬核又浪漫” 的事:
👨💻 自己写了一个 C++ 的 Lab 教程,手把手带你实现一个 LSM-Tree 键值数据库!
没错,是那种数据库底层原理 + 事务 + 崩溃恢复 + Redis 协议兼容全都有的 “真·存储引擎”Lab!
👉 项目主页:https://tonixwd.github.io/toni-lsm/book/
🎯 这个 Lab 是什么?
这是一个实践型的数据库实验项目,灵感来自 CMU 15445
的 Bustub
。
但我把它用 现代 C++17 + Xmake 构建 + 极简风交互文档 完全重构,适合:
✅ 想搞懂数据库底层结构的开发者
✅ 想用真实项目打磨简历的同学
✅ 想提升系统设计和编码能力的朋友
💡 Lab 你能学到什么?
每个实验模块从 基础到进阶,一步步带你构建一个完整的键值存储引擎:
- 🧠 理解 LSM Tree 如何组织磁盘数据,读写高效还耐操
- 💾 实现自己的 WAL(预写日志)机制,支撑崩溃恢复
- 🔀 加入事务 + MVCC,多版本并发控制不再是黑魔法
- 🔌 和 Redis 协议对接,把你写的数据库变“Redis”!
🧑🎓 学习之外,它还能帮你:
📌 简历加分项:
“实现一个带事务支持的 LSM 键值存储引擎,兼容 Redis 协议”
这句写进简历,比“做过 todo app”管用太多!
📌 刷面试原理题不再死记硬背:
什么是 WAL?为什么用 SkipList?Compaction 怎么做?
做过一遍,面试问到直接开讲!
📌 还能交朋友!
我建了 QQ 群和 GitHub Issues 讨论区,很多同学一起交流学习、优化代码,说不定还能组队参加比赛或者写论文~
📚 适合人群:
- 有 C++ 基础,想挑战硬核项目的开发者
- 后端 / 数据库方向的求职者
- 想写点“能进开源推荐栏”的项目集训者
- 大三大四想做毕设的同学(这真是宝藏选题)
💬 最后说一句:
我是真心希望这个项目能帮到更多在路上的开发者。
如果你喜欢硬核技术,但又不知道从哪里开始 —— 欢迎来做这个 Toni-LSM Lab!
主页在这:https://tonixwd.github.io/toni-lsm/book/
如果你做完了别忘了来告诉我,我们一起优化下一版!