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

猜你喜欢

转载自blog.csdn.net/cl2010abc/article/details/80600838