boltdb 数据结构
boltdb
暴露给用户的数据概念较少,只有以下:
Options
初始化boltdb
时的相关配置选择;DB
整个boltdb
的持有者,跟boltdb
相关操作都要通过调用其方法发起,是boltdb
的一个抽象;Stats
调用DB.Stats()
方法返回的数据结构,内包含一些boltdb
内部的计数信息,可以供用户查看;Bucket
类似于表
的一个概念,在boltdb相关数据必须存在一个Bucket
下,不同Bucket
下的数据相互隔离,每个Bucket
下 有一个单调递增的Sequence
,类似于自增主键;BucketStats
Bucket
的一些统计信息;Tx
boltdb
的事务数据结构,在boltdb
中,全部的对数据的操作必须发生在一个事务之内,boltdb
的并发读取都在此实现;Cursor
是内部B-TREE的一个迭代器,用于遍历数据库,提供First
/Last
/Seek
等操作;
还有一些内部数据结构,帮助实现一些内部逻辑:
node
用来存储每个Bucket
中的一部分Key-Value,每个Bucket
中的node
组织成一个B-TREE;inode
记录Key-Value对的数据结构,每个node
内包含一个inode
数组,inode
是K-V在内存中缓存的记录,该记录落到磁盘上 时,记录为leafPageElement
;leafPageElement
磁盘上记录具体Key-Value的索引;page
用户记录持久化文件中每个区域的重要信息,同时page
分为很多种类,不同page
存储不同的数据信息;
有疑问加站长微信联系(非本文作者)