您的位置:首页 > 编程语言 > C语言/C++

rocksdb ubuntu c++源码编译测试

2017-05-25 00:00 330 查看
摘要: rocksdb 5.5.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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  rocksdb ubuntu c++