文档首页 > > 移植指南> 安装LevelDB

安装LevelDB

分享
更新时间:2020/08/31 GMT+08:00

介绍

简要介绍

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

语言:C/C++

一句话描述:基于C++的存储数据库

建议的版本

建议使用版本为“leveldb-1.20”

环境要求

云服务器要求

本文以云服务器KC1实例测试,云服务器配置如表1所示。

表1 云服务器配置

项目

说明

规格

kc1.xlarge.2 | 4vCPUs | 8GB

磁盘

系统盘:高IO(40GB)

操作系统要求

操作系统要求如表2所示。

表2 操作系统要求

项目

版本

下载地址

EulerOS

2.8

在公共镜像中已提供。

Kernel

4.19.36

在公共镜像中已提供。

配置安装环境

安装依赖包。

yum install gcc-c++

获取软件包

执行以下命令,获取LevelDB软件包。

wget https://github.com/google/leveldb/archive/v1.20.tar.gz

安装

  1. 解压软件包。

    tar -zxvf v1.20.tar.gz

  2. 进入“leveldb-1.20”的安装目录。

    cd leveldb-1.20

  3. 编译OpenLDAP源码。

    make -j4

  4. 安装LevelDB。

    cp -r include/leveldb /usr/include/

    cp out-shared/libleveldb.so.1.20 /usr/lib/

    ln -s /usr/lib/libleveldb.so.1.20 /usr/lib/libleveldb.so.1

    ln -s /usr/lib/libleveldb.so.1.20 /usr/lib/libleveldb.so

    ldconfig

运行和验证

  1. 编写一个LevelDB程序,文件名为“hello_leveldb.cc”, 代码内容如下:

    #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;
        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;
        leveldb::Status s = db->Put(leveldb::WriteOptions(), key, 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;
    }

  2. 编译程序。

    g++ -std=c++11 hello_leveldb.cc -o hello_leveldb -lpthread -lleveldb

  3. 执行程序。

    ./hello_leveldb

    回显内容如下,表示LevelDB能够正常使用:

    a

分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!非常感谢您的反馈,我们会继续努力做到更好!
反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

智能客服提问云社区提问