rocksdb使用

最近项目需要使用个key-value数据存储,在众多k-v数据库中,选择了rocksdb,原因只有一条,这货自称支持范围查询。

OK,git下载下来,编译,这里说一下,号称支持C++11所以对编译器的版本是有要求的,so,你得看看你的编译器是不是支持C++11.可以编译so和.a两种文件类型,这个跟其他的开源库一个套路,看看说明编译就行了,如果你发现由于Gtest的一些东西编译失败,可以试试编译动态的。

开始使用,我被API的名字小坑了一下,由于这哥给的文档有点粗糙,我就没细看,看到Ishead这种名字,居然反应的是设置他的前一个对象,呵呵,其实这个是判断他的key是不是以传入参数为开头的,对于范围查询,这个毛用都没有。

范围查询很简单,简单到令我发指,具体使用如下

rocksdb::Iterator* it = db->NewIterator(rocksdb::ReadOptions());

Slice sliceStart("cpu_host:172.28.20.123_serviec:redis_124");

std::string strEnd =
"cpu_host:172.28.20.123_serviec:redis_135";

for (it->Seek(sliceStart);

it->Valid() && it->key().ToString() < strEnd;

it->Next()) {

std::string strInfo = it->key().ToString();

std::cout<<strInfo<<std::endl;

}

看懂了不,迭代的前面是找start,是slice类型的比对,后面end却成了string的比对了,好吧 这才是坑爹的关键啊。

时间: 2024-10-05 18:47:46

rocksdb使用的相关文章

融合RocksDB, Pregel, Foxx &amp; Satellite Collections 怎样使数据库性能提升35%?

经过数月的研发测评,开源多模型数据库ArangoDB 终于发布了其 3.2 正式版,该版本消除了两个重大的障碍,添加了一个期待已久的功能,还集成了一个有趣的功能.此外,官方团队表示新版本将 ArangoDB 的性能平均提高了 35%.同时,与 3.1 版本相比,还减少了内存的占用.集群管理方面也有了大幅度的改进. 具体如下: RocksDB 存储引擎: 与 Facebook 的 RocksDB 存储引擎的集成,使得其成为架构中第一个可插拔的存储引擎,用户现在可以使用与磁盘一样多的数据.加上 Ro

RocksDB上锁机制

RocksDB作为一个开源的存储引擎支持事务的ACID特性,而要支持ACID中的I(Isolation),并发控制这块是少不了的,本文主要讨论RocksDB的锁机制实现,细节会涉及到源码分析,希望通过本文读者可以深入了解RocksDB并发控制原理.文章主要从以下4方面展开,首先会介绍RocksDB锁的基本结构,然后我会介绍RocksDB行锁数据结构设计下,锁空间开销,接着我会介绍几种典型场景的上锁流程,最后会介绍锁机制中必不可少的死锁检测机制. 1.行锁数据结构    RocksDB锁粒度最小是

2014-08-07 SSDB 使用 rocksdb 引擎

http://www.ideawu.net/blog/archives/824.html 为了满足各位对 Facebook 出品的 rocksdb 的爱好, SSDB 数据库也可以使用 rocksdb. 这个项目就是 ssdb-rocks: https://github.com/ideawu/ssdb-rocks 据说 rocksdb 性能不错, 在某些场景比 leveldb 更佳, 欢迎各位试用. 注意, rocksdb 和 leveldb 不兼容, 所以, 旧数据不能直接用于这两个引擎. 原

rocksdb 编译安装 日志

Compilation RocksDB's library should be able to compile without any dependency installed, although we recommend installing some compression libraries (see below). We do depend on newer gcc/clang with C++11 support. There are few options when compilin

A PHP extension for Facebook&#39;s RocksDB

A PHP extension for Facebook's RocksDB 31 commits 2 branches 0 releases 2 contributors C++ 90.5% C 8.9% Other 0.6% C++COther branch: master rocksdb-php/ Merge pull request #1 from miclen/patch-1 … latest commit 8b6542e285  Photonios authored on 25 Fe

SSDB 数据库如何换用 rocksdb 引擎?

牧童遥指杏花村,一枝红杏出墙来… SSDB 数据库如何换用 rocksdb 引擎? idea's blog 2014-04-12 71 阅读 rocksdb NoSQL SSDB 数据库使用的是 Google 的 leveldb 作为存储引擎, Facebook 基于 leveldb 改造的 rocksdb 据说在某些场景中更好, 所以, 有不少朋友考虑把 SSDB 中的 leveldb 引擎换成 rocksdb. 这是可以的, 而且改动比较小. 1. 首先, 你需要修改 build.sh 文件

融合RocksDB, Pregel, Fault-Tolerent Foxx &amp; Satellite Collections 怎样使数据库性能提升35%?

摘要: 经过数月的研发测评,开源多模型数据库ArangoDB 终于发布了其 3.2 正式版,该版本消除了两个重大的障碍,添加了一个期待已久的功能,还集成了一个有趣的功能.此外,官方团队表示新版本将 ArangoDB 的性能平均提高了 35%.同时,与 3.1 版本相比,还减少了内存的占用.集群管理方面也有了大幅度的改进. 具体如下: RocksDB 存储引擎: 与 Facebook 的 RocksDB 存储引擎的集成,使得其成为架构中第一个可插拔的存储引擎,用户现在可以使用与磁盘一样多的数据.加

rocksdb编译测试的正确姿势

需要先安装 gflags 在进行 make db_bench 不然运行 db_bench 会出现 Please install gflags to run rocksdb tools 错误 bench 最基础的参数: [email protected]:/home/leveldb/rocksdb-master# ./db_bench --db=/media/m1ext4 --benchmarks=fillrandom --num=100000000 --compression_type=zlib

Rocksdb引擎记录格式

Rocksdb是一个kv引擎,由facebook团队基于levelDB改进而来,Rocksdb采用LSM-tree存储数据,良好的读写特性以及压缩特性使得其非常受欢迎.此外,Rocksdb引擎作为插件已经集成在facebook维护的MySQL分支,用户可以通过SQL来访问rocksDB.本文主要通过分析Rocksdb引擎的记录格式,并通过对比innodb,来让大家了解Rocksdb.Rocksdb作为一个kv引擎,用户通过put(key,value)来写入key,或者通过get(key)接口来获

Redis与KV存储(RocksDB)融合之编码方式

Redis与KV存储(RocksDB)融合之编码方式 简介 Redis 是目前 NoSQL 领域的当红炸子鸡,它象一把瑞士军刀,小巧.锋利.实用,特别适合解决一些使用传统关系数据库难以解决的问题.Redis 作为内存数据库,所有的数据全部都存在内存中,特别适合处理少量的热数据.当有巨量数据超过内存大小需要落盘保存时,就需要使用 Redis + KV存储的方案了. 本文涉及的Ardb就是一个完全兼容Redis协议的NoSQL的存储服务.其存储基于现有成熟的KV存储引擎实现,理论上任何类似B-Tre