课程简介
Redis、LevelDB、RocksDB -- 你每天都在使用 KV 存储,但你真正理解它们的内部实现吗?
本课程基于经典的 Bitcask 论文,带你从零实现一个完整的 KV 存储引擎。 麻雀虽小五脏俱全 -- 完整的读写链路、二进制编解码、事务支持、数据压缩回收,是一个真实可运行的存储引擎。 课程结束时,你将拥有一个可以 Put/Get/Delete、支持原子批量写、能自动清理过期数据的 KV 数据库。
更新进度
15 / 27 章已更新预计 2026 年 7 月前全部更新完毕
学完这门课,你将掌握
理解 Bitcask「追加写日志 + 内存索引」的核心设计思想,面试再也不怕被问存储引擎原理 掌握二进制编解码实战技能:CRC32 校验、varint 变长编码、Header 解析 能对比 BTree、ART、B+Tree 三种索引的适用场景,做出合理的技术选型 理解 WriteBatch 的事务设计,掌握批量写入如何保证原子性 完整掌握 Merge 数据清理流程:文件轮转、有效数据过滤、Hint 文件加速恢复 具备阅读 rosedb、badger、leveldb 等开源存储引擎源码的能力 适合谁学习
后端工程师
日常使用 Redis/MySQL 等存储系统,想深入理解底层实现原理而非只停留在 API 调用层面
面试准备者
被问到"Redis 持久化原理""LSM-Tree vs B+Tree"时,能基于自己的实现经验深入回答
系统爱好者
对存储引擎、数据库内核感兴趣,想通过动手实现来真正理解这些"黑盒"系统
前置知识
熟悉 Go / Rust / Java / C++ 中的任意一门语言即可。你不需要有存储引擎或数据库的经验 -- 课程从 Bitcask 论文讲起,从最基础的数据结构开始搭建,每一步都有详细的文章讲解和完整的可运行代码。
你将构建什么
Bitcask 存储引擎
追加写日志 + 内存索引的完整实现
二进制编解码
CRC32 校验 + varint 变长编码
WriteBatch 原子写
事务机制保证批量写入的原子性
Merge 数据清理
回收无效数据,Hint 文件加速恢复
架构概览
涉及的核心技术概念
Bitcask 存储模型
Append-only 追加写
内存索引 (BTree / ART / B+Tree)
二进制编解码
CRC32 数据校验
Varint 变长整数编码
WriteBatch 原子写
事务原子性
Merge 数据压缩回收
Hint File 加速恢复
MMap 内存映射
文件锁 (FileLock)
读写锁并发控制
迭代器模式
课程数据
27章节
4编程语言
5,000+行代码 / 每种语言
4免费章节