Linux_tokyotyrant_緩存服務器_安裝應用

功能和memcached一樣;但具有持久化緩存:據說是目前最棒的緩存服務

和大家分享下自己的經驗

 

軟件下載
http://1978th.net/tokyocabinet/
http://1978th.net/tokyocabinet/tokyocabinet-1.4.45.tar.gz
http://1978th.net/tokyotyrant/
http://1978th.net/tokyotyrant/tokyotyrant-1.1.40.tar.gz
如果用到 --enable-lua則要先安裝lua-5.1.4.tar.gz源碼包:
http://www.lua.org/ftp/lua-5.1.4.tar.gz

tar xzvf tokyocabinet-1.4.45.tar.gz
cd tokyocabinet-1.4.45
./configure --prefix=/usr/local/tc && make && make install
64位操作系統編譯方法:
./configure --prefix=/usr/local/tc --enable-lib64 --libdir=/usr/lib64 && make && make install

tar xzvf lua-5.1.4.tar.gz
cd lua-5.1.4
make linux
make install

tar xzvf tokyotyrant-1.1.40.tar.gz
cd tokyotyrant-1.1.40
./configure --prefix=/usr/local/ttserver --with-tc=/usr/local/tc --enable-lua && make && make install
64位操作系統編譯方法
./configure --prefix=/usr/local/ttserver --with-tc=/usr/local/tc --enable-lib64 --libdir=/usr/lib64 --enable-lua && make && make install


啓動方法:
cd /usr/local/ttserver/bin
默認啓動:
./ttserver &
[1] 19342
[root@feed bin]# 2010-07-22T11:50:28+08:00      SYSTEM  --------- logging started [19342] --------
2010-07-22T11:50:28+08:00       SYSTEM  server configuration: host=(any) port=1978
2010-07-22T11:50:28+08:00       SYSTEM  maximum connection: 1048575
2010-07-22T11:50:28+08:00       SYSTEM  opening the database: *
2010-07-22T11:50:28+08:00       SYSTEM  service started: 19342
2010-07-22T11:50:28+08:00       INFO    timer thread 1 started
2010-07-22T11:50:28+08:00       INFO    worker thread 1 started
2010-07-22T11:50:28+08:00       INFO    worker thread 2 started
2010-07-22T11:50:28+08:00       INFO    worker thread 3 started
2010-07-22T11:50:28+08:00       INFO    worker thread 4 started
2010-07-22T11:50:28+08:00       INFO    worker thread 5 started
2010-07-22T11:50:28+08:00       INFO    worker thread 6 started
2010-07-22T11:50:28+08:00       INFO    worker thread 7 started
2010-07-22T11:50:28+08:00       INFO    worker thread 8 started
2010-07-22T11:50:28+08:00       SYSTEM  listening started

可以看到默認端口是 1978   


單機模式啓動:
ulimit -SHn 65536
mkdir -p /ttserver/
cd /usr/local/ttserver/bin
./ttserver -host 127.0.0.1 -port 22122 -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


雙機互爲主輔模式
  主服務器10.8.17.167:
ulimit -SHn 65536
ttserver -host 10.8.17.167 -port 11211 -thnum 8 -dmn -pid /ttserver/ttserver.pid -log /ttserver/ttserver.log -le -ulog /ttserver/ -ulim 128m -sid 91 -mhost 10.8.18.204 -mport 11211 -rts /ttserver/ttserver.rts /ttserver/database.tch
  輔服務器10.8.18.204:
ulimit -SHn 65536
ttserver -host 10.8.18.204 -port 11211 -thnum 8 -dmn -pid /ttserver/ttserver.pid -log /ttserver/ttserver.log -le -ulog /ttserver/ -ulim 128m -sid 92 -mhost 10.8.17.167 -mport 11211 -rts /ttserver/ttserver.rts /ttserver/database.tch


參數說明
  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 : 指定用來存放同步時間戳的文件名。

停止tokyotyrant(ttserver)
ps -ef | grep ttserver
  找到ttserver的進程號並kill,例如:
kill -9 `cat ttserver.pid`



測試--演示非持久性
主:10.8.17.168
輔:10.8.18.204

啓動服務:
主:
cd /usr/local/ttserver/bin/
./ttserver &

使用客戶端(10.8.18.204)--另起一個終端
cd /usr/local/ttserver/bin
存放: ./tcrmgr put 10.8.17.167:1978 one test99
獲取: ./tcrmgr get 10.8.17.167:1978 one
得到結果 test99

測試持久
主的重啓ttserver,
輔的:再次獲取./tcrmgr get 10.8.17.167:1978 one
沒有結果:./tcrmgr: error: 7: no record found



測試--演示持久性
啓動服務=====
主:
cd /usr/local/ttserver/bin/
./ttserver /tmp/x.tch

使用客戶端(10.8.18.204)--另起一個終端
cd /usr/local/ttserver/bin
存放: ./tcrmgr put 10.8.17.167:1978 one test8888888
獲取: ./tcrmgr get 10.8.17.167:1978 one
得到結果:test8888888

測試持久
重啓主:ttserver
再次獲取:
./tcrmgr get 10.8.17.167:1978 one
得到結果:test8888888

證明了持久化的存儲


[root@web_test bin]# telnet 10.8.17.167 1978
Trying 10.8.17.167...
2010-07-22T17:42:34+08:00       INFO    connected: 10.8.17.167:51610
Connected to localhost.localdomain (10.8.17.167).
Escape character is '^]'.
stats
STAT pid 1236
STAT uptime 254
STAT time 1279791756
STAT version 1.1.40
STAT pointer_size 64
STAT rusage_user 0.000999
STAT rusage_system 0.001999
STAT cmd_set 0
STAT cmd_set_hits 0
STAT cmd_set_misses 0
STAT cmd_delete 0
STAT cmd_delete_hits 0
STAT cmd_delete_misses 0
STAT cmd_get 1
STAT cmd_get_hits 1
STAT cmd_get_misses 0
STAT cmd_flush 0
STAT curr_items 1
STAT total_items 1
STAT bytes 528736
STAT threads 8
END
quit

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