leveldb安装

实验环境

主机:ubuntu-16.04-x64
g++版本:5.4.0
leveldb版本:leveldb-1.20

概述

leveldb是一个谷歌开源的由cpp实现的key-value存储库,它提供了从字符串键到字符串值的有序映射。它的实现理念与大数据中的BigTable思想有颇多相似之处,甚至有很多人认为leveldb就是谷歌BigTable的单机版实现。因此理解leveldb的实现原理对大数据的学习也是有好处的。

特点

  • 键和值是任意字节数组。
  • 数据按键排序。
  • 调用者可以提供自定义比较函数来实现数据排序。
  • 基本操作有Put(key,value)、Get(key)、Delete(key)。
  • 可以在一个原子批处理中进行多个更改。
  • 用户可以创建一个临时快照以获得一致的数据视图。
  • 数据访问支持向前和向后迭代。
  • 使用Snappy压缩库自动压缩数据。

安装

1.下载安装包

点击这里下载leveldb,这里我选择的是1.20版本。(注意从tag里面的版本中去选择)

2.编译安装

将安装包上传到ubuntu主机上,解压。

unzip leveldb-1.20.zip 

编译

make

编译完成后,leveldb根目录中会多出两个目录:out-shared, out-static,分别用于存储生成的动态库和静态库,在本实例中采用动态库来演示。

拷贝头文件与动态库

cp -r include/leveldb /usr/include # 拷贝头文件
#拷贝动态库
cp out-shared/libleveldb.so.1.20 /usr/lib
cd /usr/lib
sudo ln -s libleveldb.so.1.20 libleveldb.so.1
sudo ln -s libleveldb.so.1 libleveldb.so
#将动态库加入缓存中
ldconfig

3.验证程序

#include <iostream>
#include <cassert>
#include <cstdlib>
#include <string>
#include <leveldb/db.h>

int main()
{
    leveldb::DB *db;
    leveldb::Options options;
    options.create_if_missing = true;
    leveldb::Status status = leveldb::DB::Open(options,"./leveldb",&db);
    std::cout << status.ToString() << std::endl;
    assert(status.ok());

    std::string key = "name";
    std::string value;
    leveldb::Status s = db->Put(leveldb::WriteOptions(), key, "henry");
    s = db->Get(leveldb::ReadOptions(), key, &value);
    std::cout << "get a key: " << key << ", value is: " << value << std::endl;
    delete db;

    return 0;
}

该程序的功能就是插入一个key-value对,然后再读取出来

编译:

g++ main.cpp -o main   -lleveldb  -lpthread

运行:

root@ubuntu:~# ./main 
OK
get a key: name, value is: henry
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据引用,你提到了pip show jsonpath的安装成功。根据这个引用,我可以确认jsonpath已经成功安装在你的Python环境中。 至于你提到的"windows python LevelDB安装 metadata-generation-failed",我没有找到相关的引用来回答这个问题。但是我可以给你一些建议来解决这个问题。 首先,确保你已经正确地安装LevelDB以及与之相关的依赖包。你可以尝试使用pip install命令来安装LevelDB。如果出现metadata generation failed的错误,可能是由于网络问题或者软件包源的问题导致的。你可以尝试使用其他的软件包源或者使用代理来解决这个问题。 另外,你还可以尝试使用conda来安装LevelDB,它是一个流行的Python包管理器,可以管理Python包及其依赖项。你可以在Anaconda官方网站上找到更多关于conda的信息和安装指南。 最后,如果上述方法都没有解决你的问题,我建议你检查一下你的操作系统和Python版本是否与LevelDB兼容。有时候,特定的软件包可能只能在特定的操作系统或者Python版本上正常工作。 希望这些建议对你有帮助,如果你还有其他问题,请随时提问。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [python38安装jsonpath失败问题解决](https://blog.csdn.net/qq_27371025/article/details/125855179)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [The Log: What every software engineer should know about real-time data's unifying abstraction](https://blog.csdn.net/iloveu8780/article/details/80097101)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值