Centos 7 安装RocksDB

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

你可能感兴趣的:(rocksdb,centos,linux,数据库)