![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
boltdb
Ethan3014
头发多睡眠足有妹子的程序员
展开
-
bbolt: Begin
签名 func (db *DB) Begin(writable bool) (*Tx, error) { if writable { return db.beginRWTx() } return db.beginTx() } 读写事务beginRWTx 获取锁 // Obtain writer lock. This is released by the transaction w...原创 2020-01-28 10:27:48 · 255 阅读 · 0 评论 -
bbolt: open
签名 func Open(path string, mode os.FileMode, options *Options) (*DB, error) 打开文件 lock, 调用syscall的flock 初始化或者读取文件元信息 每个page的初始元信息 type page struct { id pgid flags uint16 count uint16 o...原创 2020-01-23 16:29:37 · 222 阅读 · 0 评论 -
bbolt: main
文章目录依赖子命令benchrunWritesrunReadsbucketscompact 依赖 module go.etcd.io/bbolt go 1.12 可以看到没有依赖任何第三方组件。main函数的参数解析逻辑都是自己写的,所以导致main.go有2k+行。其实用cobra会好一点吧。 子命令 Bolt is a tool for inspecting bolt databases....原创 2020-01-22 12:06:22 · 685 阅读 · 0 评论 -
boltdb: intro
synopsis bbold是一个嵌入式的kv存储,作为主程序的lib库存在,提供简单可靠的get、set github boltdb当前api已经固定了,另外生产环境上一直在使用,数据存储量高达1T,所以值得信赖。另外代码量比较少(< 5k),适合用于研究。 ...原创 2020-01-12 12:55:59 · 132 阅读 · 0 评论