1.安装依赖
可能会提示普通用户没有权限,可以在命令前加sudo
yum -y install lrzsz git gcc gcc-c++ lz4-devel yum -y install snappy snappy-devel zlib zlib-devel bzip2 bzip2-devel lz4 lz4-devel zstd
2.下载安装cmake(gflags-2.2.2对cmake版本有要求)
直接去cmake官网下载最新版,或者如下使用命令:
wget https://cmake.org/download/cmake-3.23.1.tar.gz tar -xvf cmake-3.23.1.tar cd cmake-3.23.1 ./bootstrap make //下面这句报错就加sudo make install //查询版本 cmake --version
cmake 会默认安装在 /usr/local/bin 路径下。
3.安装依赖gflags
wget https://github.com/gflags/gflags/archive/v2.2.2.tar.gz tar -xvzf gflags-2.2.2.tar.gz cd gflags-2.2.2/ mkdir build cd build/ cmake -DBUILD_SHARED_LIBS=ON -DBUILD_STATIC_LIBS=ON -DINSTALL_HEADERS=ON -DINSTALL_SHARED_LIBS=ON -DINSTALL_STATIC_LIBS=ON .. make make install
4、下载安装rocksdb
注意:下载rocksdb之前一定要先查看你要链接的数据库版本是否匹配,否则会有报错:
Failed: Corruption: Snappy not supported or corrupted Snappy compressed block contents
随后进行以下操作:
wget https://github.com/facebook/rocksdb/archive/v6.0.2.tar.gz tar -xvzf rocksdb-6.0.2.tar.gz cd rocksdb-6.0.2/ mkdir build cd build //编译rocksdb时注意使用 -DWITH_LZ4=ON -DWITH_ZLIB=ON -DWITH_SNAPPY=ON 开启几个压缩算法的支持,因为它默认是关闭的。 cmake -DCMAKE_INSTALL_PREFIX=/usr/local/rocksdb -DWITH_LZ4=ON -DWITH_ZLIB=ON -DWITH_SNAPPY=ON .. make make install
添加环境变量:
vi /etc/profile export CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:/usr/local/rocksdb/include/ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/rocksdb/lib64/ export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/rocksdb/lib64/
5、ldb工具进行测试
cd rocksdb-6.0.2/build/tools/ [user@bogon tools]# ./ldb -help ldb - RocksDB Tool commands MUST specify --db=when necessary The following optional parameters control if keys/values are input/output as hex or as plain strings: --key_hex : Keys are input/output as hex --value_hex : Values are input/output as hex --hex : Both keys and values are input/output as hex The following optional parameters control the database internals: --column_family= : name of the column family to operate on. default: default column family --ttl with 'put','get','scan','dump','query','batchput' : DB supports ttl and value is internally timestamp-suffixed --try_load_options : Try to load option file from DB. --ignore_unknown_options : Ignore unknown options when loading option file. --bloom_bits= --fix_prefix_len= --compression_type= --compression_max_dict_bytes= --block_size= --auto_compaction= --db_write_buffer_size= --write_buffer_size= --file_size= Data Access Commands: put [--ttl] get [--ttl] batchput [ ] [..] [--ttl] scan [--from] [--to] [--ttl] [--timestamp] [--max_keys= q] [--start_time= :- is inclusive] [--end_time= :- is exclusive] [--no_value] delete deleterange query [--ttl] Starts a REPL shell. Type help for list of available commands. approxsize [--from] [--to] checkconsistency Admin Commands: dump_wal --walfile= [--header] [--print_value] [--write_committed=true|false] compact [--from] [--to] reduce_levels --new_levels= [--print_old_levels] change_compaction_style --old_compaction_style= --new_compaction_style= dump [--from] [--to] [--ttl] [--max_keys= ] [--timestamp] [--count_only] [--count_delim= ] [--stats] [--bucket= ] [--start_time= :- is inclusive] [--end_time= :- is exclusive] [--path= ] load [--create_if_missing] [--disable_wal] [--bulk_load] [--compact] manifest_dump [--verbose] [--json] [--path= ] list_column_families full_path_to_db_directory create_column_family --db= drop_column_family --db= dump_live_files idump [--from] [--to] [--input_key_hex] [--max_keys= ] [--count_only] [--count_delim= ] [--stats] repair backup [--backup_env_uri] [--backup_dir] [--num_threads] [--stderr_log_level= ] restore [--backup_env_uri] [--backup_dir] [--num_threads] [--stderr_log_level= ] checkpoint [--checkpoint_dir] write_extern_sst ingest_extern_sst [--move_files] [--snapshot_consistency] [--allow_global_seqno] [--allow_blocking_flush] [--ingest_behind] [--write_global_seqno] [user@bogon tools]# pwd /user/rocksdb-6.0.2/build/tools [user@bogon tools]# ./ldb --db=/tmp/test_db --create_if_missing put a1 b1 OK [user@bogon tools]# ./ldb --db=/tmp/test_db scan a1 : b1 [user@bogon tools]# ./ldb --db=/tmp/test_db get a1 b1 [user@bogon tools]# ./ldb --db=/tmp/test_db get a2 Failed: NotFound:
也可以链接已经生成的rocksdb数据库:
//浏览 [user@bogon tools]# ./ldb --db=/user/RocksDB scan //插值 [user@bogon tools]# ./ldb --db=/user/RocksDB put test_ticket xiaoming ok



