文档章节

rocksdb ubuntu c++源码编译测试

一一无念
 一一无念
发布于 2017/05/25 13:14
字数 307
阅读 457
收藏 0

环境: ubuntu16.4 需要安装 snappy gflage bz2 zstd 以及g++ 其中zstd是facebook开放源代码里的压缩的库

git clone https://github.com/facebook/rocksdb.git

cd rocksdb 

make static_lib 成功生成 librocksdb.a静太库(使用动态库,make share_lib)

cd examples/

测试 simple_example.cc 编译命令:

g++ simple_example.cc -o test -I ../include ../librocksdb.a -std=c++11 -lpthread -lrt -lsnappy -lgflags -lz -lbz2 -lzstd 成功后生成test可执行文件

./test

修改simple_example 

// Copyright (c) 2011-present, Facebook, Inc.  All rights reserved.
// This source code is licensed under the BSD-style license found in the
// LICENSE file in the root directory of this source tree. An additional grant
// of patent rights can be found in the PATENTS file in the same directory.

#include <cstdio>
#include <string>
#include <iostream>

#include "rocksdb/db.h"
#include "rocksdb/slice.h"
#include "rocksdb/options.h"

using namespace rocksdb;
using namespace std;

std::string kDBPath = "/tmp/rocksdb_simple_example";

int main() {
  DB* db;
  Options options;
  // Optimize RocksDB. This is the easiest way to get RocksDB to perform well
  options.IncreaseParallelism();
  options.OptimizeLevelStyleCompaction();
  // create the DB if it's not already present
  options.create_if_missing = true;

  // open DB
  Status s = DB::Open(options, kDBPath, &db);
  assert(s.ok());

  // Put key-value
  s = db->Put(WriteOptions(), "key1", "value");
  assert(s.ok());
  std::string value;
  // get value
  s = db->Get(ReadOptions(), "key1", &value);
  assert(s.ok());
  assert(value == "value");

  std::cout << value << std::endl;

  // atomically apply a set of updates
  {
    WriteBatch batch;
    batch.Delete("key1");
    batch.Put("key2", value);
    s = db->Write(WriteOptions(), &batch);
  }

  s = db->Get(ReadOptions(), "key1", &value);
  assert(s.IsNotFound());

  db->Get(ReadOptions(), "key2", &value);
  assert(value == "value");

  std::cout << value << std::endl;

  delete db;

  return 0;
}

再次编译,输出value value 

© 著作权归作者所有

一一无念
粉丝 58
博文 36
码字总数 18408
作品 0
长沙
私信 提问
ssdb-rocks - Facebook 开源的 rocksdb 网络支持

Facebook 最近开源了一个 NoSQL 存储引擎 rocksdb. 这个开源引擎是基于 Google 的 leveldb 1.5 版本, 但据称做了许多优化, 性能相对 leveldb 有了很大的提升. rocksdb 本身只是一个数据库存储...

ideawu
2013/11/20
1K
1
在 CentOS 6 上安装 ssdb-rocks

原标题: Install ssdb-rocks on CentOS 6 原文链接: http://onlyvc.us/install-ssdb-rocks-on-centos-6/ 为了优化节操精选的弹幕系统,打算更换到Facebook的RocksDB测试,为了支持多台Web S...

ideawu
2014/08/11
855
0
Go 实现的多组 Raft 库 - Dragonboat

关于 Dragonboat是一个高性能Go实现的多组Raft 共识算法库,它同时提供C++11支持。Dragonboat是目前github.com上速度最快的Raft开源实现。 Raft这样的共识算法使得只要系统中的多数成员在线便...

nilei
01/15
2.9K
2
CockroachDB存储引擎介绍(三)

CockroachDB(以下简称 CRDB)底层集成的 RocksDB 存储引擎,是一个基于 LSM-Tree结构设计的、为快速存储而生的高性能 KV 存储引擎。相较于基于传统的 update-in-place的树状结构的存储引擎,...

CockroachDB
2018/11/28
0
0
哪个图形数据库可以使用C++语言直接操作

我们的项目是用14版本C++开发的,使用的数据库是rocksdb,现在想换成一个本地图形数据库,哪位大神指点下,哪款数据库可以用C++直接本地操作

塑料五段
2017/05/27
155
1

没有更多内容

加载失败,请刷新页面

加载更多

Archiva 不小心删掉了管理员权限怎么办

Archiva 的界面和 UI 比较容易出问题。 在添加用户和为用户进行权限修改的时候,不小心连 admin 这个用户的权限都删掉了。 这个时候应该如何恢复 admin 这个用户的权限? 这个时候你可以尝试...

honeymoose
21分钟前
3
0
Java8新特性之空指针异常的克星Optional类

Java8新特性系列我们已经介绍了Stream、Lambda表达式、DateTime日期时间处理,最后以“NullPointerException” 的克星Optional类的讲解来收尾。 背景 作为开发人员每天与NullPointerExceptio...

程序新视界
34分钟前
3
0
OSChina 周四乱弹 —— 福布斯终身秃头奖

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @宇辰OSC :分享如是我闻的单曲《地藏经上卷》: 如是我闻#今日歌曲推荐# 《地藏经上卷》- 如是我闻 手机党少年们想听歌,请使劲儿戳(这里) ...

小小编辑
37分钟前
98
7
Mybatis Plus删除

/** @author beth @data 2019-10-17 00:30 */ @RunWith(SpringRunner.class) @SpringBootTest public class DeleteTest { @Autowired private UserInfoMapper userInfoMapper; /** 根据id删除......

一个yuanbeth
今天
6
0
总结

一、设计模式 简单工厂:一个简单而且比较杂的工厂,可以创建任何对象给你 复杂工厂:先创建一种基础类型的工厂接口,然后各自集成实现这个接口,但是每个工厂都是这个基础类的扩展分类,spr...

BobwithB
今天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部