ssdb寫入mysql ssdb使用筆記

2021-10-21 08:13:37 字數 2510 閱讀 1276

ssdb是一款類似於redis的nosql資料庫,不過redis是基於記憶體的,伺服器比較昂貴,ssdb則是基於硬碟儲存的,很容易擴充套件,對於一些對速度要求不是太高的應用,還是不錯的選擇。

先記錄乙個比較坑的東西,具體的用法以後補充。

ssdb刪除資料的時候有很多中方法:

flushdb   刪除整個資料庫中的所有資料

qclear     刪除列表型別的資料

hclear     刪除hash型別的資料

zclear     刪除有序集合型別的梳理

del          刪除字串型別的資料

不過,ssdb在刪除資料的時候並不會立刻釋放磁碟的空間,用作者的話說就是ssdb會在合適的時候去釋放,這就會造成不知不覺中ssdb占用的磁碟空間越來越大,還不知道什麼時候才會被釋放,如果不及時處理的話,伺服器卡死是很正常的事情,經過不斷的尋找,終於被我發現了乙個命令 compact , 這個命令會自動去釋放應該被釋放的磁碟空間,不過在使用的時候會造成ssdb卡慢,並且 compact 命令的執行速度也不快,但總算是可以立刻釋放了,不用再擔心伺服器被撐爆。

需要注意的是如果伺服器已經快被撐爆了,那麼你在執行 compact 的時候ssdb是有可能崩潰的,而且執行一次 compact 並不會釋放所有應該釋放的空間,可能需要多次執行才行。

還有乙個比較坑的東西就是在刪除資料的時候,會造成服務阻塞,其他任何寫命令都執行不了,可讀不可寫。。。而且刪除的超級慢。。。

下面簡單介紹一下ssdb的用法。

一、伺服器搭建

環境為mac

wget

unzip master.zip

cd ssdb-master

make

make的時候報了個錯:error! autoconf required! install autoconf first

於是安裝 autoconf

brew install autoconf

安裝完成後繼續編譯

make && make install

沒有報錯,繼續,下面啟動ssdb服務,加-d引數為deamon模式 服務後台執行 推薦使用

./ssdb-server -d ./ssdb.conf

或者./ssdb-server ./ssdb.conf

然後可以使用下面的命令連線到ssdb資料庫,進行操作

./tools/ssdb-cli -h localhost -p 8888

使用在命令列客戶端中執行info命令結果如下:

關閉資料庫

./ssdb-server ./ssdb.conf -s stop

ps: ssdb服務在啟動的時候會在 var 目錄下生成乙個ssdb.pid檔案,當ssdb由於意外關閉的時候這個檔案不會被刪除,因此當重新啟動ssdb服務的時候,會報下面的錯誤:

fatal error!

pidfile ./var/ssdb.pid already exists!

kill the running process before you run this command,

or use '-s restart' option to restart the server.

此時你可以手動刪除var/ssdb.pid檔案,然後啟動ssdb服務,或者在啟動ssdb服務的時候使用如下命令

./ssdb-server -d ./ssdb.conf -s restart

-s 引數支援三個選項 stop, start , restart, 預設情況下可不加 -s 引數,此時預設為start選項

!!! ps  當ssdb由於某個特別耗時操作卡死的時候,如果想停止命令的執行,目前我只知道重啟這個辦法。但是ssdb重啟使用 restart 特別慢,所以可以使用kill -9 殺掉程序,然後再啟動。。  不知道會有啥不良影響,我試了一次,還沒發現問題。

二、資料庫操作

ssdb中的資料型別分為4中,字串型別、列表型別、雜湊型別、有序集合型別。

這四種資料型別的操作命令一般都以固定的字母開頭:

s  字串型別

q  列表型別

h  雜湊型別

z  有序集合型別

(1)首先,我們最關心的一般是資料庫中存在著哪些鍵,在redis中,使用keys命令可以檢視當前資料庫中的所有鍵,但ssdb中卻沒有這樣功能的命令,這可能會讓讓用慣了redis的同學感覺有點彆扭。

在ssdb中檢視存在的鍵是分型別用不同的命令的:

keys  字串型別

qlist   列表型別

hlist   雜湊型別

zlist   有序集合型別

這四個命令的引數和用法都一樣,例如

前兩個引數用於確定鍵的範圍,a、z 即篩選鍵名首字母在a-z之間的鍵,若為''、'' 則不限制範圍,最後乙個引數用來限制返回的鍵的最大個數,為必需引數。

SSDB 效能測試

配置檔案 leveldb inmb cache size 500 inkb block size 256 inmb write buffer size 256 in mb s compaction speed 1000 yes no compression yes hashmap 100萬條,文字共...

SSDB與Redis的區別

ssdb 是乙個 c 開發的 nosql 資料庫,使用 google 公司開源的 leveldb 引擎作為底層的儲存引擎.redis 是乙個 c 語言開發的記憶體 nosql 資料庫。ssdb 採用 new bsd license 許可協議,乙個非常寬鬆靈活的協議,支援 ssdb 擁有 redis ...

SSDB與Redis的區別

ssdb 擁有 redis 的主要優點 高效能,豐富資料結構,並且擁有 redis 所不具備的能力 大資料儲存能力.ssdb 伺服器的單機儲存能力是 redis 的 100 倍 因為 ssdb 能將資料儲存在硬碟中.在使用 ssdb 自帶的 ssdb bench 工具,以及 redis 自帶的 re...