奉贤网站建设上海站霸,精神堡垒设计,教做公众号的网站,把网站内容全删掉 在重新建立会不会被k文章目录 概述编译rocksdb压缩库 基本接口 小结 概述
RocksDB 是 Facebook 的一个实验项目#xff0c;目的是希望能开发一套能在服务器压力下#xff0c;真正发挥高 速存储硬件性能的高效数据库系统。这是一个C库#xff0c;允许存储任意长度二进制 KV 数据。支持原 子读写… 文章目录 概述编译rocksdb压缩库 基本接口 小结 概述
RocksDB 是 Facebook 的一个实验项目目的是希望能开发一套能在服务器压力下真正发挥高 速存储硬件性能的高效数据库系统。这是一个C库允许存储任意长度二进制 KV 数据。支持原 子读写操作。 RocksDB 依靠大量灵活的配置使之能针对不同的生产环境进行调优包括直接使用内存使用 Flash使用硬盘或者 HDFS。支持使用不同的压缩算法并且有一套完整的工具供生产和调试使 用。 RocksDB 大量复用了 levedb 的代码并且还借鉴了许多 HBase 的设计理念。原始代码从 leveldb 1.5 上fork 出来。同时 RocksDB 也借用了一些 Facebook 之前就有的理念和代码。 RocksDB 应用场景非常广泛比如支持 redis 协议的 pika 数据库采用 RocksDB 持久化 redis 支持的数据结构MySQL 中支持可插拔的存储引擎facebook 维护的 MySQL 分支中支持 RocksDB
编译
rocksdb
git clone https://github.com/facebook/rocksdb.git
cd rocksdb
# 编译成调试模式
make
# 编译成发布模式
make static_lib压缩库
# rocksdb支持多种压缩模式
# gflags
sudo apt-get install libgflags-dev
sudo apt-get install libsnappy-dev
sudo apt-get install zlib1g-dev
sudo apt-get install libbz2-dev
sudo apt-get install liblz4-dev
sudo apt-get install libzstd-dev基本接口
Status Open(const Options options, const std::string dbname, DB** dbptr);
Status Get(const ReadOptions options, const Slice key, std::string* value);
Status Get(const ReadOptions options,
ColumnFamilyHandle* column_family, const Slice key, std::string* value);
Status Put(const WriteOptions options, const Slice key, const Slice value);
Status Put(const WriteOptions options, ColumnFamilyHandle* column_family, const Slice key, const Slice value);
// fix read-modify-write 将 读取、修改、写入封装到一个接口中
Status Merge(const WriteOptions options, const Slice key, const Slice value);
Status Merge(const WriteOptions options, ColumnFamilyHandle* column_family, const Slice key, const Slice value);
// 标记删除具体在 compaction 中删除
Status Delete(const WriteOptions options, const Slice key);
Status Delete(const WriteOptions options, ColumnFamilyHandle* column_family, const Slice key, const Slice ts);
// 针对从来不该写且已经存在的key; 这种情况比 delete 删除的快;
Status SingleDelete(const WriteOptions options, const Slice key);
Status SingleDelete(const WriteOptions options, ColumnFamilyHandle* column_family, const Slice key);Iterator* NewIterator(const ReadOptions options);
Iterator* NewIterator(const ReadOptions options, ColumnFamilyHandle* column_family);小结
这一篇简单的写了rocksdb相关的包括编译和一些接口相关的。回头慢慢弄弄完了再更新有兴趣可以去学习学习。OK结束。