一、简介
RocksDB是使用C++编写的嵌入式kv存储引擎,其键值均允许使用二进制流。由Facebook基于levelDB开发, 提供向后兼容的levelDB API。
RocksDB针对Flash存储进行优化,延迟极小。RocksDB使用LSM存储引擎,纯C++编写。Java版本RocksJava正在开发中。参见RocksJavaBasic。
RocksDB依靠大量灵活的配置,使之能针对不同的生产环境进行调优,包括直接使用内存,使用Flash,使用硬盘或者HDFS。支持使用不同的压缩算法,并且有一套完整的工具供生产和调试使用。
二、安装
1.配置yum源
①安装wget
yum install -y wget
②备份/etc/yum.repos.d/CentOS-Base.repo文件
cd /etc/yum.repos.d/
mv CentOS-Base.repo CentOS-Base.repo.back
③下载阿里云Centos-7.repo文件
wget -O CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
④重新加载yum
yum clean all
yum makecache
2.安装python3
sudo yum install python3
3.安装C++ 17
sudo yum install centos-release-scl
sudo yum-config-manager --enable rhel-server-rhscl-7-rpms
sudo yum install devtoolset-7
sudo scl enable devtoolset-7 bash
4.安装RocksDB
git clone https://github.com/facebook/rocksdb.git(或者直接在GitHub下载)
cd rocksdb
# 编译成调试模式(这个过程时间比较长)
make
# 编译成发布模式
make static_lib
5.安装依赖库
需要先安装一些必要的依赖库,如snappy、gflags、zlib等压缩库。rocksdb 支持多种压缩模式。
# gflags
https://github.com/gflags/gflags/releases(或者直接在GitHub下载)
下载:gflags-2.1.0-1.amd64.rpm
安装:rpm -i gflags-2.1.0-1.amd64.rpm
# snappy
sudo yum install snappy snappy-devel
# zlib
sudo yum install zlib zlib-devel
# bzip2
sudo yum install bzip2 bzip2-devel
# lz4
sudo yum install lz4-devel
# ASAN (optional for debugging)
sudo yum install libasan
# zstandard
sudo yum install libzstd-devel
6.添加环境变量LD_LIBRARY_PATH
sudo vim /etc/profile
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/rocksdb/rocksdb-main
export LD_LIBRARY_PATH
source /etc/profile
echo $LD_LIBRARY_PATH
7.测试是否成功,执行以下命令测试
cd rocksdb/
make check