LevelDB 概述
Posted thefist11
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LevelDB 概述相关的知识,希望对你有一定的参考价值。
1. LevelDB
非常高效的kv数据库,能够支持billion级别的数据量了。 在这个数量级别下还有着非常高的性能,主要归功于它的良好的设计。特别是LSM算法。
LevelDB 是单进程的服务,性能非常之高,在一台4个Q6600的CPU机器上,每秒钟写数据超过40w,而随机读的性能每秒钟超过10w。此处随机读是完全命中内存的速度,如果是不命中,速度大大下降。
eg.
#include "leveldb/include/db.h"
leveldb::DB* db;
leveldb::Options options;
options.create_if_missing = true;
leveldb::Status status = leveldb::DB::Open(options, "/tmp/testdb", &db);
assert(status.ok());
std::string value;
leveldb::Status s = db->Get(leveldb::ReadOptions(), key1, &value);
if (s.ok()) s = db->Put(leveldb::WriteOptions(), key2, value);
if (s.ok()) s = db->Delete(leveldb::WriteOptions(), key1);
eg2.
#include "leveldb/db.h"
#include <iostream>
using namespace std;
int main()
leveldb::DB *db;
leveldb::Options options;
options.create_if_missing = true;
// 開啟數據庫
leveldb::DB::Open(options, "/tmp/testdb", &db);
// 鍵 = MyKey29,值 = "Hello World!"
string key = "MyKey29", value = "Hello World!", result;
// 儲存 鍵/值對
db->Put(leveldb::WriteOptions(), key, value);
// 查詢 MyKey29 鍵的值
db->Get(leveldb::ReadOptions(), key, &result);
// 輸出值到屏幕
cout << "result = " << result << endl;
// 關閉數據庫
delete db;
return 0;
以上是关于LevelDB 概述的主要内容,如果未能解决你的问题,请参考以下文章