BoltDB 介绍
BoltDB 是一个使用 Golang 语言编写的嵌入式 KV 数据库
GitHub 地址: https://github.com/boltdb/bolt
Etcd 就是使用了 BoltDB 作为数据存储
BoltDB 作者表示:
- BoltDB 初衷是提供一个简单的纯 Go 键/值存储,并且不会使用无关的功能使代码膨胀
- 自己不再有时间或精力继续这项工作
- BoltDB 处于稳定状态,并有多个成功的项目在使用
因此,该开源项目,作者目前已经 Archive
Etcd fork 了分支: https://github.com/etcd-io/bbolt ,并提供了新的空闲页管理机制
BoltDB 特点
BoltDB 具备以下特点:
- 单机数据库,非分布式数据库
- 具备 ACID 事务一致性
- 具有 MVCC 的多读单写并发
- 基于 B+ 树组织索引与存储
- 文件映射与简单逻辑页管理机制
- 其他特点:纯粹,只处理 KV 存储;简单,代码量少;嵌入式
以上特点表现出来的效果:
- 可靠、稳定、数据不丢失
- 写入操作 TPS 低,适合写频次不高的业务
- KV 存储,不适合数据关系复杂的业务
- KV 数据库中较少的具备事务特性的数据库
以至于:
- 与 Etcd 这种偏配置向、运维向应用的契合度非常高
- 是非常棒的,可作为学习数据库入门的 Golang 源代码教材
下章预告
下章将整体介绍 BoltDB 代码组织情况、代码架构等
后续章将深入每个模块,介绍 BoltDB 相关实现