leveldb 初步运用

一.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;
else
cout<<"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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值