Linux上leveldb的安装和使用
1.首先从官网上下载leveldb进行编译
git clone https://github.com/google/leveldb.git
cd leveldb
make
2.将头文件和动态链接库拷到系统文件里,创建软连接,执行ldconfig命令,将动态链接库加到缓存中,使得系统可以真正使用这个动态链接库
scp -r out-static/lib* out-shared/lib* /usr/local/lib/
cd include/
scp -r leveldb /usr/local/include/
cd leveldb
rm -f /usr/local/lib/libleveldb*
scp -r out-static/lib* out-shared/lib* /usr/local/lib/
scp -r out-static/lib* out-shared/lib* /usr/local/lib/
ls -l /usr/local/lib/libleveldb*
ldconfig
3.写一个样例代码main.cc测试安装好的leveldb
#include "leveldb/db.h"
#include <cassert>
#include <iostream> using namespace std;
using namespace leveldb; int main() {
leveldb::DB *db;
leveldb::Options options;
options.create_if_missing = true;
leveldb::Status status = leveldb::DB::Open(options, "testdb", &db);
assert(status.ok()); status = db->Put(WriteOptions(), "test", "Hello World!");
assert(status.ok());
string res;
status = db->Get(ReadOptions(), "test", &res);
assert(status.ok());
cout << res << endl; delete db;
return ;
}
4.动态链接库编译如下,动态链接库不需要在当前文件下,系统能自动到相关路径下查找
g++ main.cc -o main -lpthread -lleveldb
注意:一定要加-lpthread,因为leveldb有用到线程相关调用。
5.运行编译好的文件
./main
输出结果:
Hello World!
6.再尝试一下小程序mytest.cc
#include <iostream>
#include <cassert>
#include <cstdlib>
#include <string>
#include <leveldb/db.h>
using namespace std;
int main(void)
{
leveldb::DB *db;
leveldb::Options options;
options.create_if_missing=true;
leveldb::Status status = leveldb::DB::Open(options,"./testdb",&db);
assert(status.ok());
std::string key1="people";
std::string value1="jason";
std::string value;
leveldb::Status s=db->Put(leveldb::WriteOptions(),key1,value1);
if(s.ok())
s=db->Get(leveldb::ReadOptions(),"people",&value);
if(s.ok())
cout<<value<<endl;
else
cout<<s.ToString()<<endl;
delete db;
return ;
}
7.编译
g++ mytest.cc -o mytest -lpthread -lleveldb
运行编译好的文件
./mytest
输出结果
jason
8.再加上删除操作呢
#include <iostream>
#include <string>
#include <assert.h>
#include "leveldb/db.h" using namespace std; int main(void)
{ leveldb::DB *db;
leveldb::Options options;
options.create_if_missing = true; // open
leveldb::Status status = leveldb::DB::Open(options,"/tmp/testdb", &db);
assert(status.ok()); string key = "name";
string value = "chenqi"; // write
status = db->Put(leveldb::WriteOptions(), key, value);
assert(status.ok()); // read
status = db->Get(leveldb::ReadOptions(), key, &value);
assert(status.ok()); cout<<value<<endl; // delete
status = db->Delete(leveldb::WriteOptions(), key);
assert(status.ok()); status = db->Get(leveldb::ReadOptions(),key, &value);
if(!status.ok()) {
cerr<<key<<" "<<status.ToString()<<endl;
} else {
cout<<key<<"==="<<value<<endl;
} // close
delete db; return ;
}
9.编译
g++ test.cpp -o test -lpthread -lleveldb
运行
./test
输出结果
chenqi
name NotFound:
10.查看一下testdb里的内容吧
cd /tmp/testdb/
输出结果
000005.ldb 000006.log CURRENT LOCK LOG LOG.old MANIFEST-000004
参考文献:
1.http://luodw.cc/2015/10/14/leveldb-01/
2.https://gist.github.com/dustismo/6203329
3.https://zhuanlan.zhihu.com/p/27329248
4.http://www.cnblogs.com/chenny7/p/4026447.html
Linux上leveldb的安装和使用的更多相关文章
- 【Oracle 集群】11G RAC 知识图文详细教程之RAC在LINUX上使用NFS安装前准备(六)
RAC在LINUX上使用NFS安装前准备(六) 概述:写下本文档的初衷和动力,来源于上篇的<oracle基本操作手册>.oracle基本操作手册是作者研一假期对oracle基础知识学习的汇 ...
- 怎么在Linux上下载并安装ESET NOD32 Antivirus 4桌面版
转自:怎么在Linux上下载并安装ESET NOD32 Antivirus 4桌面版 下载并安装ESET NOD32 Antivirus 4的Linux桌面版,根据下面的步骤一步一步的来: I. 下 ...
- JProfiler远程监控Linux上Tomcat的安装过程细讲(步骤非常详细!!!)
JProfiler远程监控Linux上Tomcat的安装过程细讲(步骤非常详细!!!) 1.文件准备: 服务器:CentOS Linux release 7.3.1611 (Core) Apa ...
- 转载:【Oracle 集群】RAC知识图文详细教程(六)--RAC在LINUX上使用NFS安装前准备
文章导航 集群概念介绍(一) ORACLE集群概念和原理(二) RAC 工作原理和相关组件(三) 缓存融合技术(四) RAC 特殊问题和实战经验(五) ORACLE 11 G版本2 RAC在LINUX ...
- Linux上用mvn安装node.js
Linux上用mvn安装node.js 上一篇blog简略的讲了ubuntu系统的安装,接下来讲讲Ubuntu上的基于node.js的web开发环境的搭建. Node在快速构建网络服务有着极大的优势, ...
- 大数据学习——Linux上常用软件安装
4.1 Linux系统软件安装方式 Linux上的软件安装有以下几种常见方式: 1.二进制发布包 软件已经针对具体平台编译打包发布,只要解压,修改配置即可 2.RPM发布包 软件已经按照redhat的 ...
- Windows 和 Linux 上Redis的安装守护进程配置
# Windows 和 Linux 上Redis的安装守护进程配置 Redis 简介 Redis是目前最常用的非关系型数据库(NOSql)之一,常以Key-Value的形式存储.Redis读写速度 ...
- 【转】【Oracle 集群】11G RAC 知识图文详细教程之RAC在LINUX上使用NFS安装前准备(六)
原文地址:http://www.cnblogs.com/baiboy/p/orc6.html 阅读目录 目录 介绍 下载软件 操作系统安装 Oracle安装先决条件 创建共享磁盘 参考文献 相关文章 ...
- 在Linux上下载和安装AAC音频编码器FAAC
Linux上FAAC的安装 安装 下载 http://downloads.sourceforge.net/faac/faac-1.28.tar.gz 解压 tar zxvf faac-1.28.tar ...
随机推荐
- Android安全专项-利用androguard分析微信
androguard Androguard经常使用API学习1 安装 做 Android 安全測试之前你应该知道的工具 (一) 分析 ./androlyze.py -s进入分析的交互界面 然后运行 a ...
- gulp提高微信小程序开发效率
最近公司要求把一套公众号项目的页面迁移到小程序,也就意味着要重新敲一份代码,不能更繁琐了,为了节省时间,提高迁移效率,就决定自己动手用gulp搭一个简易的小程序框架,再记录一下搭建过程.希望有大神 ...
- spring+hibernate项目demo搭建
之前用maven+spring+mybatis+spring mvc搭建了一个web项目,用于学习spring及相关知识,现在打算将mybatis换成hibernate,一样搭建一个框架. 其实myb ...
- 本地IIS
一,搭建IIS 要建立本地的IIS需要进行以下操作(包括显示.NET): 开始=>控制面板(查看方式为类别)=>程序=>程序和功能=>左边的打开或关闭Windows功能选中以下 ...
- 项目实战12.2—企业级监控工具应用实战-zabbix操作进阶
无监控,不运维.好了,废话不多说,下面都是干货. 流量党勿入,图片太多!!! 项目实战系列,总架构图 http://www.cnblogs.com/along21/p/8000812.html 一.U ...
- 《英文写作指南 The elements of style》【PDF】下载
<英文写作指南 The elements of style>[PDF]下载链接: https://u253469.ctfile.com/fs/253469-231196361 The el ...
- 《Java并发编程实战》/童云兰译【PDF】下载
<Java并发编程实战>/童云兰译[PDF]下载链接: https://u253469.pipipan.com/fs/253469-230062521 内容简介 本书深入浅出地介绍了Jav ...
- JMeter循环控制器循环次数使用变量控制注意事项
1.进入循环控制器之前变量要有值: 2.BeanShell处理文件,读取行数,赋值给变量,要有相应的Sampler,不然脚本不会运行. 对于单个线程来说,假如设置了循环2次,线程启动后,运行结束,此时 ...
- [转]winform 自动伸缩控件xpandercontrols 使用说明
链接地址:http://blog.sina.com.cn/s/blog_b5b004920101f5h3.html
- 本地如何操作服务器的mysql,详细教程
前置条件: 1.在阿里云服务器de系统是win service 2012. 2.服务器里自己安装了my sql 5.7 3.本地也安装了my sql 5.7 需求:想通过本地的mysql连接上远程的服 ...