前言
第一次寫博客^_^
系統是全新的Ubuntu20.04,什么都沒有,一切從頭開始安裝
查看gcc和g++版本
sudo apt-get update
gcc --version
g++ --version
注意這里是倆杠,4.7以上不用更新,下面代表正常,第二行是版本號,

沒有的話安裝:
sudo apt install build-essential
安裝必要的一些庫
sudo apt-get install libsnappy-dev zlib1g-dev libbz2-dev liblz4-dev libzstd-dev libgflags-dev
下載,安裝
wget https://github.com/facebook/rocksdb/archive/v6.6.4.zip #6.6.4 (2020-01-31)
此程序時間較長,且容易失敗,但這是幾種命令列下載方法中失敗率最低的一種了,嫌慢可以在Windows下用百度云之類的下載別人下載好的,然后用遠程軟體傳(貌似更慢哈哈),
unzip v6.6.4.zip
cd rocksdb-6.6.4/
make static_lib && sudo make install-static
make shared_lib && sudo make install-shared
其中第一步里全新的系統沒有zip的話安裝(一般都有,有請忽略↓):
sudo apt-get install zip
另:后兩步會消耗大量時間,以“$DEBUG_LEVEL is 0”開頭,后面一堆CC,可以去干點別的事,
設定環境變數
#echo "/usr/local/lib" |sudo tee /etc/ld.so.conf.d/rocksdb-x86_64.conf
sudo ldconfig -v #refresh the ldconfig cache
INSTALL_PATH=/usr
make shared_lib && sudo make install-shared
sudo ldconfig -v #refresh the ldconfig cache
到這里就算是安裝成功了,接下來是寫個小程式測一下以及db_bench的測驗,
測驗程式
創建一個c++程式,命名為test.cpp
先vim test.cpp創建了檔案,然后按“i”鍵進入插入模式,復制粘貼下面的代碼,然后按“esc”,輸入“:wq”,也就是保存并退出,
1 #include <cstdio>
2 #include <string>
3 #include "rocksdb/db.h"
4 #include "rocksdb/slice.h"
5 #include "rocksdb/options.h"
6
7 using namespace std;
8 using namespace rocksdb;
9
10 const std::string PATH = "/tmp/rocksdb_tmp";
11 int main(){
12 DB* db;
13 Options options;
14 options.create_if_missing = true;
15 Status status = DB::Open(options, PATH, &db);
16 assert(status.ok());
17 Slice key("foo");
18 Slice value("bar");
19 std::string get_value;
20 status = db->Put(WriteOptions(), key, value);
21 if(status.ok()){
22 status = db->Get(ReadOptions(), key, &get_value);
23 if(status.ok()){
24 printf("get %s success!!\n", get_value.c_str());
25 }else{
26 printf("get failed\n");
27 }
28 }else{
29 printf("put failed\n");
30 }
31 delete db;
32 }
編譯運行
動態編譯:
g++ -std=c++11 -o rocksdbtest test.cpp -lrocksdb -lpthread -ldl
最后這個 -ldl很重要
運行:
./rocksdbtest
或者靜態編譯:
g++ -std=c++11 -o rocksdbtest test.cpp ./librocksdb.a -lpthread -lsnappy -lz -lbz2 -lzstd /usr/lib/x86_64-linux-gnu/liblz4.a
(很長,都在同一行,這個加不加-ldl沒試)
運行成功后應該輸出get bar success!!,有錯會報錯,
db_bench測驗
此時看檔案我們會發現有很多的.d檔案,這是make程序殘留的,不知道是makefile檔案沒寫好還是咋回事,清除方式是下面
make clean
現在再看(ls命令)是不是清爽多了,現在進行db_bench的測驗
make db_bench
注意輸入這句話的時候不要想用Tab鍵補全,不然會卡很久(不要問我怎么知道的),
make成功大致是這樣的,當然也需要很長時間↓

完成后進行db_bench測驗
./db_bench
引數:db_bench測驗時可以加很多很多的引數,在后面直接加“--”加引數名加引數值即可,具體請直接搜索rocksdb引數,
例如./db_bench --benchmarks="fillseq"表示順序寫入,
可以通過可以通過 ./db_bench --help自己查看想要的配置引數
完事記得
make clean
資料存在哪
首先輸入“cd /”進入根目錄,然后“cd tmp”進入臨時檔案存盤區,然后找到以rocksdb開頭的檔案夾即是,
bye~
參考
https://blog.jeffli.me/blog/2016/12/02/getting-started-with-rocksdb-in-centos-7/
https://zhang0peter.blog.csdn.net/article/details/96869454
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/249291.html
標籤:C++
