Tokyo Tyrant安装和配置
Tokyo Tyrant安裝和配置
Tokyo Cabinet是日本人開發的一款DBM數據庫,讀寫速度非常快。Tokyo Tyrant也是由同一作者開發的Tokyo Cabinet網絡接口,兼容memcached協議,也可以通過http協議進行數據交換。
?
Tokyo Tyrant加上Tokyo Cabinet構成一款支持高并發的分布式持久存儲系統,對任何memcached客戶端來說,可以將Tokyo Tyrant當作是一個memcached服務,但是ttserever數據是持久存儲的。同時ttserver支持互為主輔模式,實現故障轉移。
?
安裝
1.安裝zlib.h和bzlib.h依賴
yum?install?-y?zlib-devel?bzip2-devel如果不安裝,可能會碰到如下錯誤:
configure:?error:?bzlib.h?is?required?
2.安裝Tokyo Cabinet
cd?/tmp wget?http://fallabs.com/tokyocabinet/tokyocabinet-1.4.48.tar.gz tar?zxvf?tokyocabinet-1.4.48.tar.gz cd?tokyocabinet-1.4.48 ./configure?--prefix=/usr/local/ttserver/tokyocabinet make make?install注意:在32位操作系統下,作為?Tokyo?Tyrant?后端存儲的?Tokyo?Cabinet?數據庫單個文件不能超過2G,而64位操作系統則不受這一限制。
所以,如果使用?Tokyo?Tyrant,推薦在64位CPU、操作系統上安裝運行。
在編譯Tokyo?cabinet的時候,使用如下編譯選項就可以突破2G限制:--enable-off64
?
3.安裝Tokyo Tyrant
cd?/tmp wget?http://fallabs.com/tokyotyrant/tokyotyrant-1.1.41.tar.gz tar?zxvf?tokyotyrant-1.1.41.tar.gz cd?tokyotyrant-1.1.41 ./configure?--prefix=/usr/local/ttserver/tokyotyrant?--with-tc=/usr/local/ttserver/tokyocabinet如果不指定--with-tc,可能會報如下錯誤:
configure:?error:?tcutil.h?is?requiredmake make?install?
4.查看參數
cd?/usr/local/ttserver/ ./tokyotyrant/bin/ttserver?-h./tokyotyrant/bin/ttserver:?the?server?of?Tokyo?Tyrant usage: ./tokyotyrant/bin/ttserver?[-host?name]?[-port?num]?[-thnum?num]?[-tout?num]?[-dmn]?[-pid?path]?[-kl]?[-log?path]?[-ld|-le]?[-ulog?path]?[-ulim?num]?[-uas]?[-sid?num]?[-mhost?name]?[-mport?num]?[-rts?path]?[-rcc]?[-skel?name]?[-mul?num]?[-ext?path]?[-extpc?name?period]?[-mask?expr]?[-unmask?expr]?[dbname]ttserver參數注釋:
-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?:?指定用來存放同步時間戳的文件名。 -rcc?:?復制的一致性檢查。 -skel?name?:?指定skeleton數據庫的庫名稱。 -mul?num?:?指定多個數據庫機制的分區數目。 -ext?path?:?指定腳本語言的擴展文件路徑。 -extpc?name?period?:?指定函數的名稱和周期命令的調用周期。 -mask?expr?:?指定禁止執行的命令。 -unmask?expr?:?指定允許的命令的名稱。?
配置
1.創建數據文件存放目錄
mkdir?-p?/ttserver/data?#數據文件 mkdir?-p?/ttserver/ulog?#同步日志 mkdir?-p?/ttserver/log?#日志文件?
2.設置文件描述符大小
vim?/etc/security/limits.conf* soft nofile 204800
* hard nofile 204800
或
ulimit?-u?204800?-HSn?204800或寫入/etc/profile里面,這樣每次用戶登錄進來都會執行這個文件。
?
3.配置全局參數
vi?/etc/profile在里面加入
export PATH="$PATH:/usr/local/ttserver/tokyotyrant/bin:/usr/local/ttserver/tokyotyrant/sbin"
.?/etc/profile echo?$PATH?
4.啟動ttserver
數據庫類型由后綴決定,因為我只需要key-value的功能,所以采用功能簡單,速度快的hash database
Hash Database :.tch
B+ tree database :.tcb
fixed-length database :.tcf
table database :.tct
內存Hash Database :*
內存B+ tree database :+
1) 單機模式
ttserver?-host?192.168.11.51?-port?11211?-thnum?8?-dmn?-pid?/ttserver/ttserver.pid?-log?/ttserver/log/ttserver.log?-le?-ulog?/ttserver/ulog?-ulim?128m?-sid?1?-rts?/ttserver/ttserver.rts?/ttserver/data/database.tch?
2) 互為主輔
在192.168.11.51上執行:
ttserver?-host?192.168.11.51?-port?11211?-thnum?8?-dmn?-pid?/ttserver/ttserver.pid?-log?/ttserver/log/ttserver.log?-le?-ulog?/ttserver/ulog/?-ulim?128m?-sid?110?-mhost?192.168.11.52?-mport?11211?-rts?/ttserver/ttserver.rts?/ttserver/data/casket.tch在192.168.11.52上執行:
ttserver?-host?192.168.11.52?-port?11211?-thnum?8?-dmn?-pid?/ttserver/ttserver.pid?-log?/ttserver/log/ttserver.log?-le?-ulog?/ttserver/ulog/?-ulim?128m?-sid?111?-mhost?192.168.11.51?-mport?11211?-rts?/ttserver/ttserver.rts?/ttserver/data/casket.tch?
3) 腳本或服務方式
腳本或服務方式啟動,可以配置為單機,也可以配置為主輔。
編輯啟動腳本:/usr/local/ttserver/tokyotyrant/sbin/ttservctl,設置相關參數:
(以單機模式配置為示例)
#!?/bin/sh #----------------------------------------------------------------?#?Startup?script?for?the?server?of?Tokyo?Tyrant #---------------------------------------------------------------- #?configuration?variables prog="ttservctl" cmd="ttserver" basedir="/ttserver/"????#數據庫目錄 port="1978"?????#ttserver端口 pidfile="$basedir/pid"??#輸出進程ID到/ttserver/pid文件 logfile="$basedir/log/ttserver.log"??#輸出日志信息到/ttserver/log/ttserver.log文件 ulogdir="$basedir/ulog/"???#指定同步日志文件存放路徑 ulimsiz="256m"?????#對單個ulog文件限制,超過將新建一個文件 sid=110??#server?id同mysql,不能有重復的 #mhost="192.168.11.52"???#指定主輔同步模式下,主服務器的域名或IP地址。#mport="11211"???#指定主輔同步模式下,主服務器的端口號。 rtsfile="$basedir/rts"????#replication的時間記錄文件 dbname="$basedir/data/casket.tch#bnum=1000000"?#xmsiz=最大使用內存” maxcon="65535" retval=0啟動ttserver服務器: ttservctl start
關閉ttserver服務器: ttservctl stop
重啟ttserver服務器: ttservctl restart
ttserver服務器日志輪轉: ttservctl hup
或者將腳本放到/etc/init.d/目錄,作為服務啟動。
?
5.驗證啟動成功
ps?aux?|?grep?ttserver telnet?192.168.11.51?1978Trying?192.168.11.51... Connected?to?192.168.11.51. Escape?character?is?'^]'. stats STAT?pid?20553 STAT?uptime?67 STAT?time?1430991715 STAT?version?1.1.41 STAT?pointer_size?64 STAT?rusage_user?0.011998 STAT?rusage_system?0.018997 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?0 STAT?cmd_get_hits?0 STAT?cmd_get_misses?0 STAT?cmd_flush?0 STAT?curr_items?0 STAT?total_items?0 STAT?bytes?4198720 STAT?threads?8 END quit Connection?closed?by?foreign?host.轉載于:https://blog.51cto.com/ultrasql/1643955
總結
以上是生活随笔為你收集整理的Tokyo Tyrant安装和配置的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python编程基础_月隐学python
- 下一篇: OC之ARC环境中的循环strong问题