leveldb代码阅读(1)——leveldb介绍以及使用
来源:互联网 发布:淘宝宝贝设置货到付款 编辑:程序博客网 时间:2024/05/10 02:05
Leveldb是一个google实现的非常高效的kv数据库。
LevelDb有如下一些特点:
首先,LevelDb是一个持久化存储的KV系统,和Redis这种内存型的KV系统不同,LevelDb不会像Redis一样狂吃内存,而是将大部分数据存储到磁盘上。
其次,LevleDb在存储数据时,是根据记录的key值有序存储的,就是说相邻的key值在存储文件中是依次顺序存储的,而应用可以自定义key大小比较函数,LevleDb会按照用户定义的比较函数依序存储这些记录。
再次,像大多数KV系统一样,LevelDb的操作接口很简单,基本操作包括写记录,读记录以及删除记录。也支持针对多条操作的原子批量操作。
另外,LevelDb支持数据快照(snapshot)功能,使得读取操作不受写操作影响,可以在读操作过程中始终看到一致的数据。
LevelDb有如下一些特点:
首先,LevelDb是一个持久化存储的KV系统,和Redis这种内存型的KV系统不同,LevelDb不会像Redis一样狂吃内存,而是将大部分数据存储到磁盘上。
其次,LevleDb在存储数据时,是根据记录的key值有序存储的,就是说相邻的key值在存储文件中是依次顺序存储的,而应用可以自定义key大小比较函数,LevleDb会按照用户定义的比较函数依序存储这些记录。
再次,像大多数KV系统一样,LevelDb的操作接口很简单,基本操作包括写记录,读记录以及删除记录。也支持针对多条操作的原子批量操作。
另外,LevelDb支持数据快照(snapshot)功能,使得读取操作不受写操作影响,可以在读操作过程中始终看到一致的数据。
除此外,LevelDb还支持数据压缩等操作,这对于减小存储空间以及增快IO效率都有直接的帮助。
#include <iostream>#include <string>#include <assert.h>#include "include/leveldb/db.h"using namespace std;int main(void){ leveldb::DB *db; leveldb::Options options; options.create_if_missing = true; // open leveldb::Status status = leveldb::DB::Open(options,"/tmp/testdb", &db); assert(status.ok()); string key = "name"; string value = "chenqi"; // write status = db->Put(leveldb::WriteOptions(), key, value); assert(status.ok()); // read status = db->Get(leveldb::ReadOptions(), key, &value); assert(status.ok()); cout<<value<<endl; // delete status = db->Delete(leveldb::WriteOptions(), key); assert(status.ok()); status = db->Get(leveldb::ReadOptions(),key, &value); if(!status.ok()) { cerr<<key<<" "<<status.ToString()<<endl; } else { cout<<key<<"==="<<value<<endl; } // close delete db; return 0;}
0 0
- leveldb代码阅读(1)——leveldb介绍以及使用
- leveldb代码阅读(3)——Leveldb 实现原理
- leveldb代码阅读(11)——levelDB生成的文件
- leveldb代码阅读(6)——后台进程
- leveldb代码阅读(7)——插入数据
- leveldb代码阅读(8)——查询数据
- leveldb代码阅读(9)——levedb的快照
- leveldb代码阅读(12)——数据库日志文件格式
- leveldb代码阅读(14)——Level和Compaction
- levelDB—初识levelDB
- LevelDB源码阅读(1)—— SSTable的生成
- levelDB—整体架构介绍
- LevelDB源码阅读(1)
- leveldb安装以及使用
- leveldb代码阅读(16)——流程分析:打开数据库(详细版本)
- leveldb代码阅读(17)——流程分析:写数据(详细版本)
- leveldb代码阅读(18)——流程分析:读数据(详细版本)
- leveldb代码阅读(2)——一些简单的概念
- UIImagePickerController详解
- java-数组1
- Java多态小练习
- 向量与向量空间(vector space)
- javascript变量作用域
- leveldb代码阅读(1)——leveldb介绍以及使用
- C语言读取汉字字模
- Listener,Filter,Servlet执行顺序和生命周期
- java-数组2
- 数列求和 0,1,1,2,3,5,8,13,21,34........Java
- 【Android 5.1.1_r1+Nexus4】Android源码的下载、编译到刷机
- Android 性能测试
- 部署Oracle Data Guard
- ios-AutoLayout(自动布局代码控制)简单总结