1. 程式人生 > >centos7安裝ssdb,及ssdb的使用

centos7安裝ssdb,及ssdb的使用

 

目錄

安裝前準備

安裝unzip

編譯前安裝gcc編譯器

開始安裝ssdb

問題及解決

啟動

SSDB 啟動指令碼(隨作業系統自啟動)

命令列工具 ssdb-cli

連線到 SSDB 伺服器

監控 SSDB 例項的狀態

info

info cmd

compact


安裝前準備

安裝unzip

yum install -y unzip zip

編譯前安裝gcc編譯器

yum -y install gcc*

開始安裝ssdb

按照ssdb的官方文件進行安裝即可

wget --no-check-certificate https://github.com/ideawu/ssdb/archive/master.zip
unzip master
cd ssdb-master
make
# 將安裝在 /usr/local/ssdb 目錄下
sudo make install

問題及解決

g++ ...deps/snappy-1.1.0/.libs/libsnappy.a: No such file or directory
make[1]: *** [all] Error 1
g++ ...deps/jemalloc-3.3.1/lib/libjemalloc.a: No such file or directory
make[1]: *** [all] Error 1

這是因為 Snappy 或者 Jemalloc 沒有編譯成功, 這一般是因為你的系統時鐘有問題. 可以這樣解決:

cd deps/snappy-1.1.0;
./configure
make

# 或者

cd deps/jemalloc-3.3.1;
./configure
make

 

啟動

# 啟動主庫
./ssdb-server ssdb.conf

# 或者啟動為後臺程序
./ssdb-server -d ssdb.conf

# 啟動 ssdb 命令列
./tools/ssdb-cli -p 8888

# 停止 ssdb-server
./ssdb-server ssdb.conf -s stop

# 對於舊版本
kill `cat ./var/ssdb.pid`

# 重啟
./ssdb-server ssdb.conf -s restart

到目前為止, 你需要手動管理 ssdb-server 程序, 如果你希望在作業系統啟動和停止時自動地管理, 請按下面的說明進行.

SSDB 啟動指令碼(隨作業系統自啟動)

假設你已經安裝 SSDB 在預設的 /usr/local/ssdb 目錄, 把 tools/ssdb.sh 指令碼放到 /etc/init.d 目錄下.

注意: 對於 CentOS 使用者, 請將 ssdb.sh 重新命名為 ssdb.

編輯下面的內容:

# each config file for one instance
configs=/data/ssdb_data/test/ssdb.conf

將 /data/ssdb_data/test/ssdb.conf 修改為你的 SSDB 配置檔案的路徑. 如果你有多個 SSDB 例項, 那麼把它們寫在一行, 用空格來分隔:

# each config file for one instance
configs=/data/ssdb_data/test/ssdb.conf /data/ssdb_data/demo/ssdb.conf

CentOS

sudo chkconfig --add ssdb
sudo chkconfig ssdb on

命令列工具 ssdb-cli

SSDB 的命令列工具 ssdb-cli 對於 SSDB 的管理非常有用, 你可以用它來執行所有的命令, 監控服務的狀態, 清除整個資料庫, 等等.

連線到 SSDB 伺服器

$ /usr/local/ssdb/ssdb-cli -h 127.0.0.1 -p 8888
ssdb (cli) - ssdb command line tool.
Copyright (c) 2012-2013 ideawu.com

'h' or 'help' for help, 'q' to quit.

ssdb 127.0.0.1:8888>

輸入 'h', 然後按回車檢視幫助資訊. 下面是操作的演示:

ssdb 127.0.0.1:8888> set k 1
ok
(0.000 sec)
ssdb 127.0.0.1:8888> get k
1
(0.000 sec)
ssdb 127.0.0.1:8888> del k
ok
(0.000 sec)
ssdb 127.0.0.1:8888> get k
error: not_found
(0.000 sec)
ssdb 127.0.0.1:8888>

監控 SSDB 例項的狀態

info

命令 info 顯示了資料在 SSDB 中的分佈情況, 還有 LevelDB 的健康程度.

ssdb 127.0.0.1:8899> info
version
	1.8.0
links
	1
total_calls
	4
dbsize
	1829
binlogs
	capacity : 10000000
	min_seq  : 1
	max_seq  : 74
replication
	client 127.0.0.1:55479
		type     : sync
		status   : SYNC
		last_seq : 73
replication
	slaveof 127.0.0.1:8888
		id         : svc_2
		type       : sync
		status     : SYNC
		last_seq   : 73
		copy_count : 0
		sync_count : 44
leveldb.stats
					 Compactions
	Level  Files Size(MB) Time(sec) Read(MB) Write(MB)
	--------------------------------------------------
	  0        0        0         0        0         0
	  1        1        0         0        0         0

25 result(s) (0.001 sec)

links

當前伺服器的連線數.

total_calls

從伺服器啟動至今處理的請求數.

dbsize

資料庫估計的大小(可能和硬碟佔用差異非常大, 以 du 命令顯示的為準), 位元組數. 如果伺服器開啟了壓縮, 這個大小是壓縮後的大小.

binlogs

replication

key_range.*

不同資料型別的 key 在 SSDB 中是排序的, 所以這個資訊表示不同資料型別的最小 key 和最大 key.

leveldb.stats

這個資訊顯示了 LevelDB 每一層級的檔案數量和檔案總大小. 越小的層級如果檔案越少, 那麼資料庫就越健康(查詢更快速).

info cmd

ssdb 127.0.0.1:8899> info cmd
version
	1.6.7
cmd.get
	calls: 20000    time_wait: 27   time_proc: 472
cmd.set
	calls: 267045   time_wait: 7431 time_proc: 7573
cmd.setx
	calls: 111100   time_wait: 3663 time_proc: 6456
cmd.del
	calls: 0    time_wait: 0    time_proc: 0

cmd.*

  • calls: 該命令總共處理了多少次.
  • time_wait: 命令在被處理前等待的總共時間(單位毫秒).
  • time_proc: 命令處理總共消耗的時間(單位毫秒).

compact

這個命令強制 SSDB 伺服器對資料進行收縮(compaction), 收縮之後, 操作通常會變得更快.

注意, compact 的過程可能會拖慢正常服務, 特別是當資料庫比較大時. 所以, 建議在空閒時使用.