leveldb源码分析之五
2017-08-11 23:42
302 查看
options.create_if_missing = true;##前言
之前篇章写了数据库的初始化,貌似啥没干太多事情,其实连文件都没创建,仅仅是在内存中保持了一个wrateable的数据结构,应该是按需创建的逻辑,真的数据库创建更是距离遥远,这里我们暂时不追究,继续我们源码阅读,看看到底如何创建的。
第一次运行后,在特定目录中产生了这么几个文件
[img]https://img-blog.csdn.net/20170810210546089?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMjgyODIzMTc=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/diss![这里写图片描述](
之前篇章写了数据库的初始化,貌似啥没干太多事情,其实连文件都没创建,仅仅是在内存中保持了一个wrateable的数据结构,应该是按需创建的逻辑,真的数据库创建更是距离遥远,这里我们暂时不追究,继续我们源码阅读,看看到底如何创建的。
正文
其实db_->open,做了很多事情,这里很难完全解释,我们只好在自己写个最简单的测试代码,创建一个数据库,然后运行,leveldb::Options options; options.reuse_logs = false; options.create_if_missing = true; leveldb::DB* db_; std::string dbname_ = "/mnt/c/work/source/testdb.db"; leveldb::DB::Open(options, dbname_, &db_); db_->Put(leveldb::WriteOptions(),"love","life");// db_->Put(leveldb::WriteOptions(),"hello","world");
第一次运行后,在特定目录中产生了这么几个文件
[img]https://img-blog.csdn.net/20170810210546089?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMjgyODIzMTc=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/diss![这里写图片描述](
相关文章推荐
- Leveldb源码分析--22
- LevelDB源码分析5-Arena.md
- Leveldb源码分析--8
- 一,levelDB源码分析(slice)
- LevelDB源码分析之十:LOG文件
- levelDB源码分析-SSTable:.sst文件构建与读取
- leveldb 源码分析 —— SkipList跳表
- leveldb源码分析
- LevelDB源码分析2-整数编解码
- Leveldb源码分析--9
- levelDB源码分析-Slice
- Leveldb源码分析3 Cache
- leveldb源码分析四
- 【转载】leveldb源码分析—Recover和Repair
- leveldb源码分析--SSTable之逻辑结构
- Leveldb源码分析--10
- LevelDB源码分析之九:env
- levelDB源码分析-Status
- LevelDB源码分析3-Slice.md
- Leveldb源码分析--2