本文共 1578 字,大约阅读时间需要 5 分钟。
主机:ubuntu-16.04-x64g++版本:5.4.0leveldb版本:leveldb-1.20
leveldb是一个谷歌开源的由cpp实现的key-value存储库,它提供了从字符串键到字符串值的有序映射。它的实现理念与大数据中的BigTable思想有颇多相似之处,甚至有很多人认为leveldb就是谷歌BigTable的单机版实现。因此理解leveldb的实现原理对大数据的学习也是有好处的。
点击下载leveldb,这里我选择的是1.20版本。(注意从tag里面的版本中去选择)
将安装包上传到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/libcd /usr/libsudo ln -s libleveldb.so.1.20 libleveldb.so.1sudo ln -s libleveldb.so.1 libleveldb.so#将动态库加入缓存中ldconfig
#include#include #include #include #include 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 OKget a key: name, value is: henry
转载地址:http://uwjmb.baihongyu.com/