# leveldb **Repository Path**: JimLui/leveldb ## Basic Information - **Project Name**: leveldb - **Description**: leveldb - **Primary Language**: C++ - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 1 - **Created**: 2014-12-16 - **Last Updated**: 2024-06-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README #leveldb LevelDB LevelDB 開發者 Google 编程语言 C++ 操作系统 跨平台 类型 嵌入數據庫編程庫 许可协议 BSD许可证 網站 leveldb.googlecode.com LevelDB是一個由Google公司所研發的鍵/值對(Key/Value Pair)嵌入式數據庫管理系統編程庫,[1] 以開源的BSD許可證發佈。[2] 特徵 高性能 [3] 簡單的體系結構:只支持API调用,不支持SQL語言 自由軟件和開放原始碼軟件 數據支持被Snappy函式庫壓縮[4],以減少Disk I/O提升效能 例子 儲存鍵/值對,和查詢鍵的值: #include "leveldb/db.h" #include 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安裝目錄為:leveldb-read-only)[5] % g++ test.cc -Ileveldb-read-only/include -Lleveldb-read-only -lleveldb -lpthread % ./a.out result = Hello World! RocksDB 2013年Facebook基於LevelDB開發出RocksDB,特別針對服務器負載而優化。[6] ----安装--------- 一、下载LevelDB包 我下载的是:leveldb-1.4.0.tar.gz git clone https://code.google.com/p/leveldb/ 有些时候 上面不要加s的http 二、我在Ubunt上编译 解压之后进入目录:leveldb-1.4.0 执行:make,生成了: libleveldb.a 三、拷贝相应头文件到:/usr/local/include目录(需要root权限) 执行命令: sudo cp -r include/leveldb /usr/local/include 范例: #include #include #include #include int main(){ leveldb::DB* db; leveldb::Options options; options.create_if_missing = true; leveldb::Status status = leveldb::DB::Open(options,"/tmp/testdb", &db); assert(status.ok()); //write key1,value1 std::string key="key"; std::string value = "value"; status = db->Put(leveldb::WriteOptions(), key,value); assert(status.ok()); status = db->Get(leveldb::ReadOptions(), key, &value); assert(status.ok()); std::cout<Put(leveldb::WriteOptions(),key2,value); assert(status.ok()); status = db->Delete(leveldb::WriteOptions(), key); assert(status.ok()); status = db->Get(leveldb::ReadOptions(),key2, &value); assert(status.ok()); std::cout<Get(leveldb::ReadOptions(),key, &value); if(!status.ok()) std::cerr<