CodePie
所有课程课程价格产品理念关于作者
首页 / 从零实现 KV 存储

从零实现 KV 存储

基于 Bitcask 论文,从零实现一个完整的 KV 存储引擎。涵盖数据读写、编解码、索引设计、WriteBatch 原子写、Merge 数据清理等核心主题。

Go / Rust / Java / C++27 章中等难度前 4 章免费
购买课程免费试读

课程简介

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 文件加速恢复

架构概览

Put / Get / DeleteDB EngineRWLock · Options · activeFile · olderFiles · index查询/更新索引读写数据文件内存索引 (Indexer)BTree / ART / B+Treekey-1 → { Fid:0, Offset:0 }key-2 → { Fid:0, Offset:128 }key-3 → { Fid:1, Offset:0 }磁盘数据文件 (DataFile)活跃文件 (可写)

涉及的核心技术概念

Bitcask 存储模型
Append-only 追加写
内存索引 (BTree / ART / B+Tree)
二进制编解码
CRC32 数据校验
Varint 变长整数编码
WriteBatch 原子写
事务原子性
Merge 数据压缩回收
Hint File 加速恢复
MMap 内存映射
文件锁 (FileLock)
读写锁并发控制
迭代器模式

学员评价

课程数据

27章节
4编程语言
5,000+行代码 / 每种语言
4免费章节
CodePie

动手构建真实系统,在实践中深入理解底层原理。

课程

  • 从零实现 KV 存储
  • 从零实现 SQL 数据库
  • 从零实现 AI Coding Agent

关于

  • 关于作者
  • 产品理念
  • 课程价格

联系我们

  • 微信:kiss_duan
  • 邮箱:roseduan7@163.com
  • 用户协议
  • 隐私政策
CodePie © 2026
000000001.data旧文件 (只读)000000000.dataIOManagerRead · Write · Sync · MMap