levedb介绍
leveldb is a fast key-value storage library written at google that provides an ordered mapping from string keys to string values.
Leveldb是一个google实现的非常高效的kv数据库目前的版本1.2能够支持billion级别的数据量了 在这个数量级别下还有着非常高的性能主要归功于它的良好的设计特别是LSM算法.LevelDB 是单进程的服务性能非常之高在一台4核Q6600的CPU机器上每秒钟写数据超过40w而随机读的性能每秒钟超过10w。此处随机读是完全命中内存的速度如果是不命中 速度大大下降。
LevelDb本质上是一套存储系统以及在这套存储系统上提供的一些操作接口。为了便于理解整个系统及其处理流程,我们可以从两个不同的角度来看待LevleDb:静态角度和动态角度。从静态角度,可以假想整个系统正在运行过程中(不断插入删除读取数据),此时我们给LevelDb照相,从照片可以看到之前系统的数据在内存和磁盘中是如何分布的,处于什么状态等;从动态的角度,主要是了解系统是如何写入一条记录,读出一条记录,删除一条记录的,同时也包括除了这些接口操作外的内部操作比如compaction,系统运行时崩溃后如何恢复系统等等方面。
levedb主页: https://github.com/google/leveldb
levedb最新版下载地址: levedb最新版下载
levedb 用法举例:
#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;
}