`

leveldb 安装及使用

阅读更多

leveldb 简介

leveldb 是 Google 用 C++ 开发的一个快速的键值对存储数据库,提供从字符串键到字符串值的有序映射。

leveldb 安装

下载 leveldb

git clone https://github.com/google/leveldb.git

编译 leveldb

cd leveldb/
make

编译的动态库和静态库分别在 out-sharedout-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
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
分享到:
评论

相关推荐

    leveldb-windows-python3.6编译版

    1. **安装与引入**:将leveldb.pyd文件放入Python的site-packages目录后,用户可以在Python代码中通过`import leveldb`来使用这个库。 2. **初始化DB对象**:创建一个LevelDB实例,例如`db = leveldb.LevelDB('path...

    leveldb源码工程Windows版

    7. **README**:通常会提供关于如何构建、安装和使用leveldb的基本指导,以及一些注意事项和常见问题解答。 8. **LevelDB.sln**:这是Visual Studio的解决方案文件,双击可以加载整个项目到IDE中,便于管理和编译源...

    caffe+VS2013安装所需LEVELDB库

    在本文中,我们将深入探讨如何在Visual Studio 2013环境下安装并使用Caffe,一个流行的深度学习框架。在Caffe的构建过程中,我们常常会遇到一个关键的依赖库——LevelDB,它是一个轻量级、高性能的键值对存储数据库...

    ARM32 架构的 php_leveldb数据库

    一个 leveldb.so文件 这是我编译的自己用的leveldb模块,试过了php7.3使用正常 还有一个txt文件 我自己写的编译方法参考。如果我编译的模块用不了就尝试自己编译 这个源码包我编译是可以用的,注意是arm32架构的...

    leveldb.pyd python3.6

    本文将详细介绍如何在Python3.6环境中安装并使用`leveldb.pyd`。 首先,`leveldb.pyd`是一个预编译好的Python动态链接库文件(.pyd),它是Python在Windows平台上的二进制扩展模块,用于与C++编写的LevelDB库进行...

    leveldb-1.15.0修正版

    这个“leveldb-1.15.0修正版”是对原始LevelDB 1.15.0版本的改进,修复了编译错误,并提供了一个使用示例,使得开发者能够更顺利地在项目中集成和使用LevelDB。 **编译错误修复** 在原始的LevelDB 1.15.0版本中...

    py-leveldb

    5. **安装与使用**:安装py-leveldb通常涉及解压下载的压缩包,然后使用Python的`setup.py`脚本进行安装。使用时,开发者需要导入相应的模块,创建数据库实例,然后通过调用方法进行数据操作。 6. **性能优化**:...

    windows上编译leveldb生成的leveldb.lib

    在Windows环境下,使用Visual Studio 2013编译开源的LevelDB库并生成`leveldb.lib`静态库文件,是一项常见的任务。LevelDB是一个轻量级的键值存储库,由Google开发,用于存储小到中等大小的数据集。它的设计目标是...

    leveldb windows 工程

    在Windows上使用LevelDB,首先需要安装Visual Studio 2005或更高版本,因为提供的工程文件是为这个IDE编写的。同时,确保系统已经安装了C++编译器和必要的构建工具。 【三】编译LevelDB库 1. 下载源码:从GitHub或...

    leveldb vs2013 32bit

    9. **使用库文件**:在其他32位的VS2013项目中,引用编译好的LevelDB库,通过`#include "leveldb/db.h"`导入头文件,即可开始使用LevelDB的功能。 总的来说,VS2013编译的LevelDB 32位版本,提供了在Windows平台上...

    C#读取LevelDB数据

    你可以通过NuGet包管理器来安装这个库,只需在Visual Studio中打开项目,右键点击“管理NuGet程序包”,然后搜索并安装`LevelDB.Net`。 在C#代码中,我们需要引用`LevelDB.Net`库,这可以通过在文件顶部添加以下...

    leveldb-master.rar

    1. **环境准备**:确保安装了Visual Studio及CMake构建工具。 2. **下载源码**:从GitHub获取LevelDB的最新源代码,解压至本地目录,例如`leveldb-master`。 3. **创建解决方案**:使用CMake生成VS项目文件。打开...

    python leveldb的VS编译工程

    在Windows平台上,如果你打算使用PyCaffe,一个基于Python的深度学习框架,你可能需要安装和编译LevelDB以及其Python绑定pyleveldb。这是因为PyCaffe依赖于LevelDB来存储和检索训练数据。 LevelDB是由Google开发的...

    leveldb-windows

    以下是在Windows x64系统中使用Visual Studio 2010编译LevelDB的详细过程。 1. **下载源码**: 首先,你需要从GitHub或其他可靠的源下载LevelDB的源代码。这通常是一个.zip文件,解压缩后会得到一个名为`leveldb`...

    开源项目-golang-leveldb.zip

    2. **Block Cache**:为了进一步提高读取性能,LevelDB使用了Block Cache来缓存最近访问过的键值对,减少了磁盘I/O操作。 3. **Compaction**:随着SSTable数量的增加,LevelDB会定期进行Compaction操作,将多个...

    Getting Started with LevelDB-Andy Dent

    * 安装LevelDB:用户可以通过编译源代码或使用预编译的二进制文件来安装LevelDB。 * 配置LevelDB:用户需要配置LevelDB的存储路径、缓存大小等参数,以确保LevelDB的高性能和可靠性。 LevelDB的API和数据模型: * ...

    LevelDB库,可以成功编译为VS2010下lib

    你可能还需要安装一些依赖库,如SNAPPY(LevelDB的一个可选压缩库),但这不是必须的,因为LevelDB可以不使用压缩功能。 3. **创建VS2010项目**:打开Visual Studio 2010,选择“文件” &gt; “新建” &gt; “项目”,在...

    leveldb 1.70

    3. **内存缓存**:LevelDB使用一个可配置大小的内存缓冲区(LRU缓存),用于存储最近访问的数据,提高读取速度。当缓存满时,会根据LRU策略淘汰旧数据。 4. **多版本并发控制**:LevelDB支持多版本并发控制(MVCC)...

    Python版的LevelDBcpy-leveldb.zip

    cpy-python使用例子: &gt;&gt;&gt; import leveldb &gt;&gt;&gt; db = leveldb.LevelDB("/tmp/leveldb") &gt;&gt;&gt; db.Put("1", "111") &gt;&gt;&gt; db.Put("2", "222") &gt;&gt;&gt; db.Put("3", "333") &gt;&gt;&gt; db.Get("1") '111' &gt;&gt;&gt; db.Get("3") '333' &gt;&gt;&gt; db...

    leveldb_1_20_win32源码

    【标题】"leveldb_1_20_win32...总的来说,"leveldb_1_20_win32源码" 提供了在32位Windows系统上使用和定制LevelDB的机会,开发者可以通过编译源代码来理解和掌握其内部工作原理,或者根据自己的需求进行定制和优化。

Global site tag (gtag.js) - Google Analytics