[关闭]
@breakerthb 2016-07-09T08:28:40.000000Z 字数 1278 阅读 1617

LevelDB使用

DB NoSQL Tools


1.Download

https://code.google.com/p/leveldb/

$ wget http://leveldb.googlecode.com/files/leveldb-1.7.0.tar.gz

2.Compile

$ tar zxvf leveldb-1.7.0.tar.gz
	$ cd leveldb-1.7.0
$ make

产生libleveldb.a,这个用在自己的项目中

$sudo cp -r include/leveldb /usr/local/include

3.Demo

#include <assert.h>
#include <string.h>
#include <leveldb/db.h>
#include <iostream>

using namespace std;
using namespace leveldb;

int main(){
        // ---- Open A Database ----
        DB* db = NULL;
        Options options;
        options.create_if_missing = true;
        //Status status = DB::Open(options,"/tmp/testdb", &db);
        Status status = DB::Open(options,"testdb", &db);

        assert(status.ok());

        // ---- Put ----
        //write key1,value1
        string key="key1";
        string value = "value1";
        status = db->Put(WriteOptions(), key, value);
        assert(status.ok());
        
        // ---- Get ----
        status = db->Get(ReadOptions(), key, &value);
        assert(status.ok());

        cout << value << endl;
        
        
        // ---- Delete ----
        status = db->Delete(WriteOptions(), key);
        assert(status.ok());
      

        status = db->Get(ReadOptions(),key, &value);
        
        if(!status.ok()) 
        {
                cerr << key << "--Error--: " << status.ToString() << endl;
        }
        else
        {
                cout << key << "===" << value << endl;
        }

        // ---- Closing A Database ----
        delete db;

        return 0;
}

编译:

$ g++ -o Main Main.cpp libleveldb.a -I/usr/local/include -lsnappy -lpthread 

原理

实现原理

http://www.cnblogs.com/haippy/archive/2011/12/04/2276064.html

源码分析

http://blog.csdn.net/sparkliang/article/details/8567602

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注