番外-我做了一个 LSM 存储引擎 Lab 等你来挑战

🚀 用 C++ 从零手写一个「键值数据库」?我真写了!

前段时间我做了一件 “硬核又浪漫” 的事:
👨‍💻 自己写了一个 C++ 的 Lab 教程,手把手带你实现一个 LSM-Tree 键值数据库!

没错,是那种数据库底层原理 + 事务 + 崩溃恢复 + Redis 协议兼容全都有的 “真·存储引擎”Lab

👉 项目主页:https://tonixwd.github.io/toni-lsm/book/


🎯 这个 Lab 是什么?

这是一个实践型的数据库实验项目,灵感来自 CMU 15445Bustub
但我把它用 现代 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/
如果你做完了别忘了来告诉我,我们一起优化下一版!