leveldb 简介
leveldb 是 Google 用 C++ 开发的一个快速的键值对存储数据库,提供从字符串键到字符串值的有序映射。
leveldb 安装
下载 leveldb
git clone https://github.com/google/leveldb.git
编译 leveldb
cd leveldb/
make
编译的动态库和静态库分别在 out-shared
,out-static
下:
ls leveldb/out-shared/libleveldb.so.1.20
ls leveldb/out-static/libleveldb.a
安装 leveldb
只有动态库需要安装,静态库在你编译的时候直接链接即可
# cp leveldb header file
sudo cp -r /leveldb/include/ /usr/include/
# cp lib to /usr/lib/
sudo cp /leveldb/out-shared/libleveldb.so.1.20 /usr/lib/
# create link
sudo ln -s /usr/lib/libleveldb.so.1.20 /usr/lib/libleveldb.so.1
sudo ln -s /usr/lib/libleveldb.so.1.20 /usr/lib/libleveldb.so
# update lib cache
sudo ldconfig
查看安装是否成功
ls /usr/lib/libleveldb.so*
# 显示下面 3 个文件即安装成功
/usr/lib/libleveldb.so.1.20
/usr/lib/libleveldb.so.1
/usr/lib/libleveldb.so
leveldb 使用
我们来编写一个 hello_leveldb.cc
来测试我们的 leveldb
。
#include <iostream>
#include <cassert>
#include <cstdlib>
#include <string>
// 包含必要的头文件
#include <leveldb/db.h>
using namespace std;
int main(void)
{
leveldb::DB *db = nullptr;
leveldb::Options options;
// 如果数据库不存在就创建
options.create_if_missing = true;
// 创建的数据库在 /tmp/testdb
leveldb::Status status = leveldb::DB::Open(options, "/tmp/testdb", &db);
assert(status.ok());
std::string key = "A";
std::string value = "a";
std::string get_value;
// 写入 key1 -> value1
leveldb::Status s = db->Put(leveldb::WriteOptions(), key, value);
// 写入成功,就读取 key:people 对应的 value
if (s.ok())
s = db->Get(leveldb::ReadOptions(), "A", &get_value);
// 读取成功就输出
if (s.ok())
cout << get_value << endl;
else
cout << s.ToString() << endl;
delete db;
return 0;
}
编译 - 静态链接
cp leveldb/out-static/libleveldb.a ./
g++ hello_leveldb.cc -o hello_leveldb ./libleveldb.a -lpthread
编译 - 动态链接
g++ hello_leveldb.cc -o hello_leveldb -lpthread -lleveldb
运行结果
./hello_leveldb
# 输出值为 a,说明成功存储和获取
a
# 查看数据库
ls /tmp/testdb
作者:cdeveloper
链接:http://www.jianshu.com/p/8392acf7c9db
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
相关推荐
1. **安装与引入**:将leveldb.pyd文件放入Python的site-packages目录后,用户可以在Python代码中通过`import leveldb`来使用这个库。 2. **初始化DB对象**:创建一个LevelDB实例,例如`db = leveldb.LevelDB('path...
7. **README**:通常会提供关于如何构建、安装和使用leveldb的基本指导,以及一些注意事项和常见问题解答。 8. **LevelDB.sln**:这是Visual Studio的解决方案文件,双击可以加载整个项目到IDE中,便于管理和编译源...
在本文中,我们将深入探讨如何在Visual Studio 2013环境下安装并使用Caffe,一个流行的深度学习框架。在Caffe的构建过程中,我们常常会遇到一个关键的依赖库——LevelDB,它是一个轻量级、高性能的键值对存储数据库...
一个 leveldb.so文件 这是我编译的自己用的leveldb模块,试过了php7.3使用正常 还有一个txt文件 我自己写的编译方法参考。如果我编译的模块用不了就尝试自己编译 这个源码包我编译是可以用的,注意是arm32架构的...
本文将详细介绍如何在Python3.6环境中安装并使用`leveldb.pyd`。 首先,`leveldb.pyd`是一个预编译好的Python动态链接库文件(.pyd),它是Python在Windows平台上的二进制扩展模块,用于与C++编写的LevelDB库进行...
这个“leveldb-1.15.0修正版”是对原始LevelDB 1.15.0版本的改进,修复了编译错误,并提供了一个使用示例,使得开发者能够更顺利地在项目中集成和使用LevelDB。 **编译错误修复** 在原始的LevelDB 1.15.0版本中...
5. **安装与使用**:安装py-leveldb通常涉及解压下载的压缩包,然后使用Python的`setup.py`脚本进行安装。使用时,开发者需要导入相应的模块,创建数据库实例,然后通过调用方法进行数据操作。 6. **性能优化**:...
在Windows环境下,使用Visual Studio 2013编译开源的LevelDB库并生成`leveldb.lib`静态库文件,是一项常见的任务。LevelDB是一个轻量级的键值存储库,由Google开发,用于存储小到中等大小的数据集。它的设计目标是...
在Windows上使用LevelDB,首先需要安装Visual Studio 2005或更高版本,因为提供的工程文件是为这个IDE编写的。同时,确保系统已经安装了C++编译器和必要的构建工具。 【三】编译LevelDB库 1. 下载源码:从GitHub或...
9. **使用库文件**:在其他32位的VS2013项目中,引用编译好的LevelDB库,通过`#include "leveldb/db.h"`导入头文件,即可开始使用LevelDB的功能。 总的来说,VS2013编译的LevelDB 32位版本,提供了在Windows平台上...
你可以通过NuGet包管理器来安装这个库,只需在Visual Studio中打开项目,右键点击“管理NuGet程序包”,然后搜索并安装`LevelDB.Net`。 在C#代码中,我们需要引用`LevelDB.Net`库,这可以通过在文件顶部添加以下...
1. **环境准备**:确保安装了Visual Studio及CMake构建工具。 2. **下载源码**:从GitHub获取LevelDB的最新源代码,解压至本地目录,例如`leveldb-master`。 3. **创建解决方案**:使用CMake生成VS项目文件。打开...
在Windows平台上,如果你打算使用PyCaffe,一个基于Python的深度学习框架,你可能需要安装和编译LevelDB以及其Python绑定pyleveldb。这是因为PyCaffe依赖于LevelDB来存储和检索训练数据。 LevelDB是由Google开发的...
以下是在Windows x64系统中使用Visual Studio 2010编译LevelDB的详细过程。 1. **下载源码**: 首先,你需要从GitHub或其他可靠的源下载LevelDB的源代码。这通常是一个.zip文件,解压缩后会得到一个名为`leveldb`...
2. **Block Cache**:为了进一步提高读取性能,LevelDB使用了Block Cache来缓存最近访问过的键值对,减少了磁盘I/O操作。 3. **Compaction**:随着SSTable数量的增加,LevelDB会定期进行Compaction操作,将多个...
* 安装LevelDB:用户可以通过编译源代码或使用预编译的二进制文件来安装LevelDB。 * 配置LevelDB:用户需要配置LevelDB的存储路径、缓存大小等参数,以确保LevelDB的高性能和可靠性。 LevelDB的API和数据模型: * ...
你可能还需要安装一些依赖库,如SNAPPY(LevelDB的一个可选压缩库),但这不是必须的,因为LevelDB可以不使用压缩功能。 3. **创建VS2010项目**:打开Visual Studio 2010,选择“文件” > “新建” > “项目”,在...
3. **内存缓存**:LevelDB使用一个可配置大小的内存缓冲区(LRU缓存),用于存储最近访问的数据,提高读取速度。当缓存满时,会根据LRU策略淘汰旧数据。 4. **多版本并发控制**:LevelDB支持多版本并发控制(MVCC)...
cpy-python使用例子: >>> import leveldb >>> db = leveldb.LevelDB("/tmp/leveldb") >>> db.Put("1", "111") >>> db.Put("2", "222") >>> db.Put("3", "333") >>> db.Get("1") '111' >>> db.Get("3") '333' >>> db...
【标题】"leveldb_1_20_win32...总的来说,"leveldb_1_20_win32源码" 提供了在32位Windows系统上使用和定制LevelDB的机会,开发者可以通过编译源代码来理解和掌握其内部工作原理,或者根据自己的需求进行定制和优化。