leveldb 初步运用
来源:互联网 发布:interbase数据库导出表 编辑:程序博客网 时间:2024/06/07 18:57
一.leveldb安装与使用
1. 下载leveldb-1.15.0.tar.gz
2. 解压tar -zxvf leveldb-1.15.0.tar.gz
3. cd leveldb-1.15.0
4. Make生成libleveldb.a
5. Cp –r include/leveldb /usr/local/include
6. Cp libleveldb.a /usr/local/leveldbtest
7. 代码
#include<iostream>#include<string>#include<assert.h>#include"leveldb/db.h"using namespace std;int main(){leveldb::DB* db;leveldb::Options options;options.create_if_missing = true;string dbpath = "/usr/local/leveldbtest/db2";leveldb::Status status = leveldb::DB::Open(options,dbpath , &db);string key1 = "k1",value1 ="v1",key2 = "k2",value2="v2",res1,res2;string key3="k3",value3="v3",key4="k4",value4="v4";if(status.ok()){cout<<"open db ok,start to put data......"<<endl;db->Put(leveldb::WriteOptions(),key1,value1);db->Put(leveldb::WriteOptions(),key2,value2);db->Put(leveldb::WriteOptions(),key3,value3);db->Put(leveldb::WriteOptions(),key4,value4);}if(status.ok()){db->Get(leveldb::ReadOptions(),key2,&res1);cout<<"the reslut of find1 is: "<<key2<<"---->"<<res1<<endl;}if(status.ok()){db->Delete(leveldb::WriteOptions(),key2); db->Get(leveldb::ReadOptions(),key2,&res2);}if(!status.ok()) cout<<"the reslut of find is: "<<key2<<"---->"<<status.ToString()<<endl;elsecout<<"the reslut of find2 is: "<<key2<<"---->"<<res2<<endl;delete db;return 0;}
8. g++ -otest test.cc libleveldb.a -lpthread
二.leveldb简介
1. LevelDb是能够处理十亿级别规模Key-Value型数据持久性存储的C++程序库。它将大部分数据存储到磁盘上
2. LevleDb在存储数据时,是根据记录的key值有序存储的,可以自定义key大小比较函数,LevleDb会按照用户定义的比较函数依序存储这些记录。
3. 基本操作包括写、读、删除记录。也支持针对多条操作的原子批量操作。
4. LevelDb支持数据快照(snapshot)功能,使得读取操作不受写操作影响,可以在读操作过程中始终看到一致的数据。
5. LevelDb还支持数据压缩等操作,这对于减小存储空间以及增快IO效率都有直接的帮助。
6. 随机写性能达到40万条记录每秒,而随机读性能达到6万条记录每秒。总体来说,LevelDb的写操作要大大快于读操作,而顺序读写操作则大大快于随机读写操作。
0 0
- leveldb 初步运用
- 深入leveldb-初步认识leveldb
- log4j初步理解/运用
- 大数初步运用
- if else for初步运用
- Auto Layout的初步运用。
- ubuntu初步运用配置问题
- LevelDb
- LevelDb
- LevelDb
- leveldb
- leveldb
- leveldb
- leveldb
- LevelDb
- LevelDb
- Leveldb
- Leveldb
- linux之cut用法
- Javascript
- 软件编程常用语
- UVA - 10131 Is Bigger Smarter?(dp+最大升序子序列)
- JavaScript类继承实现之一
- leveldb 初步运用
- 置信度传播算法(Belief Propagation)
- linux 下的makefile自动生成
- Linux下paste命令
- Eclipse下编写C++程序——CDT环境搭建
- Maven 入门
- webview与js交互、webview返回上一层html、webview获取html的title、加载assets下的html文件
- 知道创宇爬虫题--代码持续更新中
- 准备奔向新时代的技术nodejs+express+mongodb+json