TTServer(TokyoTyrant)的安裝和介紹

Tokyo Tyrant 是由同一作者開發的 Tokyo Cabinet 數據庫網絡接口。它擁有Memcached兼容協議,也可以通過HTTP協議進行數據交換。

Tokyo Tyrant 加上 Tokyo Cabinet,構成了一款支持高併發的分佈式持久存儲系統,對任何原有Memcached客戶端來講,可以將Tokyo Tyrant看成是一個Memcached,但是,它的數據是可以持久存儲的。這一點,跟新浪的Memcachedb性質一樣。

相比Memcachedb而言,Tokyo Tyrant具有以下優勢:

1、故障轉移:Tokyo Tyrant支持雙機互爲主輔模式,主輔庫均可讀寫,而Memcachedb目前支持類似MySQL主輔庫同步的方式實現讀寫分離,支持“主服務器可讀寫、輔助服務器只讀”模式。
2、日誌文件體積小:Tokyo Tyrant用於主輔同步的日誌文件比較小,大約是數據庫文件的1.3倍,而Memcachedb的同步日誌文件非常大,如果不定期清理,很容易將磁盤寫滿。
3、超大數據量下表現出色:
一、安裝

1、首先編譯安裝tokyocabinet數據庫

wget http://tokyocabinet.sourceforge.net/tokyocabinet-1.3.22.tar.gz
tar zxvf tokyocabinet-1.3.22.tar.gz
cd tokyocabinet-1.3.22/
./configure
make
make install
cd ../

2、然後編譯安裝tokyotyrant

wget http://tokyocabinet.sourceforge.net/tyrantpkg/tokyotyrant-1.1.8.tar.gz

tar zxvf tokyotyrant-1.1.8.tar.gz

cd tokyotyrant-1.1.8/

./configure

make

make install

cd ../

二、配置

  1、創建tokyotyrant數據文件存放目錄
mkdir -p /ttserver/
2、啓動tokyotyrant的主進程(ttserver)
(1)、單機模式
ulimit -SHn 51200
ttserver -host 127.0.0.1 -port 11211 -thnum 8 -dmn -pid /ttserver/ttserver.pid -log /ttserver/ttserver.log -le -ulog /ttserver/ -ulim 128m -sid 1 -rts /ttserver/ttserver.rts /ttserver/database.tch
(2)、雙機互爲主輔模式
服務器192.168.1.91:
ulimit -SHn 51200
ttserver -host 192.168.1.91 -port 11211 -thnum 8 -dmn -pid /ttserver/ttserver.pid -log /ttserver/ttserver.log -le -ulog /ttserver/ -ulim 128m -sid 91 -mhost 192.168.1.92 -mport 11211 -rts /ttserver/ttserver.rts /ttserver/database.tch
服務器192.168.1.92:
ulimit -SHn 51200
ttserver -host 192.168.1.92 -port 11211 -thnum 8 -dmn -pid /ttserver/ttserver.pid -log /ttserver/ttserver.log -le -ulog /ttserver/ -ulim 128m -sid 92 -mhost 192.168.1.91 -mport 11211 -rts /ttserver/ttserver.rts /ttserver/database.tch
(3)、參數說明
ttserver [-host name] [-port num] [-thnum num] [-tout num] [-dmn] [-pid path] [-log path] [-ld|-le] [-ulog path] [-ulim num] [-uas] [-sid num] [-mhost name] [-mport num] [-rts path] [dbname]

-host name : 指定需要綁定的服務器域名或IP地址。默認綁定這臺服務器上的所有IP地址。
-port num : 指定需要綁定的端口號。默認端口號爲1978
-thnum num : 指定線程數。默認爲8個線程。
-tout num : 指定每個會話的超時時間(單位爲秒)。默認永不超時。
-dmn : 以守護進程方式運行。
-pid path : 輸出進程ID到指定文件(這裏指定文件名)。
-log path : 輸出日誌信息到指定文件(這裏指定文件名)。
-ld : 在日誌文件中還記錄DEBUG調試信息。
-le : 在日誌文件中僅記錄錯誤信息。
-ulog path : 指定同步日誌文件存放路徑(這裏指定目錄名)。
-ulim num : 指定每個同步日誌文件的大小(例如128m)。
-uas : 使用異步IO記錄更新日誌(使用此項會減少磁盤IO消耗,但是數據會先放在內存中,不會立即寫入磁盤,如果重啓服務器或ttserver進程被kill掉,將導致部分數據丟失。一般情況下不建議使用)。
-sid num : 指定服務器ID號(當使用主輔模式時,每臺ttserver需要不同的ID號)
-mhost name : 指定主輔同步模式下,主服務器的域名或IP地址。
-mport num : 指定主輔同步模式下,主服務器的端口號。
-rts path : 指定用來存放同步時間戳的文件名。

如果使用的是哈希數據庫,可以指定參數“#bnum=xxx”來提高性能。它可以指定bucket存儲桶的數量。例如指定“#bnum=1000000”,就可以將最新最熱的100萬條記錄緩存在內存中:
ttserver -host 127.0.0.1 -port 11211 -thnum 8 -dmn -pid /ttserver/ttserver.pid -log /ttserver/ttserver.log -le -ulog /ttserver/ -ulim 128m -sid 1 -rts /ttserver/ttserver.rts /ttserver/database.tch#bnum=1000000
如果大量的客戶端訪問ttserver,請確保文件描述符夠用。許多服務器的默認文件描述符爲1024,可以在啓動ttserver前使用ulimit命令提高這項值。例如:
ulimit -SHn 51200

3、停止tokyotyrant(ttserver)
ps -ef | grep ttserver
找到ttserver的進程號並kill,例如:
kill -TERM 2159

三、調用
1、任何Memcached客戶端均可直接調用tokyotyrant。
2、還可以通過HTTP方式調用,下面以Linux的curl命令爲例,介紹如何操作tokyotyrant:
(1)、寫數據,將數據“value”寫入到“key”中:
curl -X PUT http://127.0.0.1:11211/key -d "value"
(2)、讀數據,讀取“key”中數據:
curl http://127.0.0.1:11211/key
(3)、刪數據,刪除“key”:
curl -X DELETE http://127.0.0.1:11211/key

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章