在前面的两篇文章当中,我给大家介绍了 rosedb 的基础结构,以及基本的数据操作流程。
希望你已经对这两节的内容有了一个基本的了解。
本期的视频参考在文章的最后,简单浏览了文字之后,你可以再结合视频看看,加深一下理解。
今天再来讲一下 rosedb 数据库的基本操作,内容主要有:启动数据库、重新打开数据库、关闭数据库、reclaim 操作。
启动数据库
启动数据库的流程:
1、加载数据文件;我们知道其实 rosedb 最基础的组成部分就是数据文件,因此在启动的时候都要先去加载所有的数据文件。
2、新建活跃文件;活跃文件也是一个数据文件,只不过它可以用来写。
3、加载过期字典;过期字典的信息单独存储在一个文件当中,需要去加载一下。
4、加载数据索引信息;其实就是把数据文件中的每一个 Entry 重新执行一遍,还原最新的索引状态。
重新打开数据库
这个操作比较简单,传入数据库配置的目录,然后根据目录中的数据文件打开数据库即可。
关闭数据库
针对每一个打开的数据库示例,在使用完毕之后,都需要关闭数据库。关闭数据库的操作主要有:
1、数据文件持久化到磁盘;是为了将内存缓冲区中的数据持久化到磁盘数据文件当中,避免数据丢失。
2、保存相关配置;将配置写入到相应的文件当中,待重新打开的时候进行选择。
reclaim 操作
这是很重要的一个操作,我们知道数据的增删改操作都会被封装一个 Entry,然后写到数据文件当中。
这样一来,数据文件当中,可能存在大量的冗余数据,例如下面的这个例子:
a 的值被设置成了 100、200、300,a 最新的值便是 300,其余的两个操作便是冗余数据了。
所以我们需要新建一个临时文件,将全部的 Entry 数据取出,判断为有效的 Entry 并写入到临时文件当中,无效的 Entry 则直接舍弃,如下图:
操作完成之后,临时文件就是新的数据文件了。
参考视频
题图:from wallheaven.cc
本文分享自 roseduan写字的地方 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!