Tokyo Tyrant安装和配置

前端之家收集整理的这篇文章主要介绍了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依赖

yuminstall-yzlib-develbzip2-devel@H_502_45@ 

如果不安装,可能会碰到如下错误

configure:error:bzlib.hisrequired@H_502_45@ 
 

2.安装Tokyo Cabinet

cd/tmp
wgethttp://fallabs.com/tokyocabinet/tokyocabinet-1.4.48.tar.gz
tarzxvftokyocabinet-1.4.48.tar.gz
cdtokyocabinet-1.4.48
./configure--prefix=/usr/local/ttserver/tokyocabinet
make
makeinstall@H_502_45@ 


注意:在32位操作系统下,作为TokyoTyrant后端存储的TokyoCabinet数据库单个文件不能超过2G,而64位操作系统则不受这一限制。

所以,如果使用TokyoTyrant,推荐在64cpu、操作系统上安装运行。

在编译Tokyocabinet的时候,使用如下编译选项就可以突破2G限制:--enable-off64

3.安装Tokyo Tyrant

cd/tmp
wgethttp://fallabs.com/tokyotyrant/tokyotyrant-1.1.41.tar.gz
tarzxvftokyotyrant-1.1.41.tar.gz
cdtokyotyrant-1.1.41
./configure--prefix=/usr/local/ttserver/tokyotyrant--with-tc=/usr/local/ttserver/tokyocabinet@H_502_45@ 


如果不指定--with-tc,可能会报如下错误

configure:error:tcutil.hisrequired@H_502_45@ 
make
makeinstall@H_502_45@ 
 

4.查看参数

cd/usr/local/ttserver/
./tokyotyrant/bin/ttserver-h@H_502_45@ 
./tokyotyrant/bin/ttserver:theserverofTokyoTyrant
usage:
./tokyotyrant/bin/ttserver[-hostname][-portnum][-thnumnum][-toutnum][-dmn][-pidpath][-kl][-logpath][-ld|-le][-ulogpath][-ulimnum][-uas][-sidnum][-mhostname][-mportnum][-rtspath][-rcc][-skelname][-mulnum][-extpath][-extpcnameperiod][-maskexpr][-unmaskexpr][dbname]@H_502_45@ 

ttserver参数注释:

-hostname:指定需要绑定的服务器域名或IP地址。默认绑定这台服务器上的所有IP地址。
-portnum:指定需要绑定的端口号。默认端口号为1978
-thnumnum:指定线程数。默认为8个线程.
-toutnum:指定每个会话的超时时间(单位为秒)。默认永不超时。
-dmn:以守护进程方式运行。
-pidpath:输出进程ID到指定文件(这里指定文件名)。
-logpath:输出日志信息到指定文件(这里指定文件名)。
-ld:在日志文件中还记录DEBUG调试信息。
-le:在日志文件中仅记录错误信息。
-ulogpath:指定同步日志文件存放路径(这里指定目录名)。
-ulimnum:指定每个同步日志文件的大小(例如128m)。
-uas:使用异步IO记录更新日志(使用此项会减少磁盘IO消耗,但是数据会先放在内存中,不会立即写入磁盘,如果重启服务器或ttserver进程被kill掉,将导致部分数据丢失。一般情况下不建议使用)。
-sidnum:指定服务器ID号(当使用主辅模式时,每台ttserver需要不同的ID号)
-mhostname:指定主辅同步模式下,主服务器的域名或IP地址。
-mportnum:指定主辅同步模式下,主服务器的端口号。
-rtspath:指定用来存放同步时间戳的文件名。
-rcc:复制的一致性检查。
-skelname:指定skeleton数据库的库名称。
-mulnum:指定多个数据库机制的分区数目。
-extpath:指定脚本语言的扩展文件路径。
-extpcnameperiod:指定函数名称和周期命令的调用周期。
-maskexpr:指定禁止执行的命令。
-unmaskexpr:指定允许的命令的名称。@H_502_45@ 
 

配置



1.创建数据文件存放目

mkdir-p/ttserver/data#数据文件
mkdir-p/ttserver/ulog#同步日志
mkdir-p/ttserver/log#日志文件@H_502_45@ 
 

2.设置文件描述符大小

vim/etc/security/limits.conf@H_502_45@ 

* soft nofile 204800

* hard nofile 204800

ulimit-u204800-HSn204800@H_502_45@ 

或写入/etc/profile里面,这样每次用户登录进来都会执行这个文件

3.配置全局参数

vi/etc/profile@H_502_45@ 

在里面加入

export PATH="$PATH:/usr/local/ttserver/tokyotyrant/bin:/usr/local/ttserver/tokyotyrant/sbin"

./etc/profile
echo$PATH@H_502_45@ 
 

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-host192.168.11.51-port11211-thnum8-dmn-pid/ttserver/ttserver.pid-log/ttserver/log/ttserver.log-le-ulog/ttserver/ulog-ulim128m-sid1-rts/ttserver/ttserver.rts/ttserver/data/database.tch@H_502_45@ 
 

2) 互为主辅

在192.168.11.51上执行:

ttserver-host192.168.11.51-port11211-thnum8-dmn-pid/ttserver/ttserver.pid-log/ttserver/log/ttserver.log-le-ulog/ttserver/ulog/-ulim128m-sid110-mhost192.168.11.52-mport11211-rts/ttserver/ttserver.rts/ttserver/data/casket.tch@H_502_45@ 

在192.168.11.52上执行:

ttserver-host192.168.11.52-port11211-thnum8-dmn-pid/ttserver/ttserver.pid-log/ttserver/log/ttserver.log-le-ulog/ttserver/ulog/-ulim128m-sid111-mhost192.168.11.51-mport11211-rts/ttserver/ttserver.rts/ttserver/data/casket.tch@H_502_45@ 
 

3) 脚本或服务方式

脚本或服务方式启动,可以配置为单机,也可以配置为主辅。

编辑启动脚本:/usr/local/ttserver/tokyotyrant/sbin/ttservctl,设置相关参数:

(以单机模式配置为示例)

#!/bin/sh
#----------------------------------------------------------------#StartupscriptfortheserverofTokyoTyrant
#----------------------------------------------------------------
#configurationvariables
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#serverid同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@H_502_45@ 


启动ttserver服务器: ttservctl start

关闭ttserver服务器: ttservctl stop

重启ttserver服务器: ttservctl restart

ttserver服务器日志轮转: ttservctl hup

或者将脚本放到/etc/init.d/目录,作为服务启动。

5.验证启动成功

psaux|grepttserver
telnet192.168.11.511978@H_502_45@ 
Trying192.168.11.51...
Connectedto192.168.11.51.
Escapecharacteris'^]'.
stats
STATpid20553
STATuptime67
STATtime1430991715
STATversion1.1.41
STATpointer_size64
STATrusage_user0.011998
STATrusage_system0.018997
STATcmd_set0
STATcmd_set_hits0
STATcmd_set_misses0
STATcmd_delete0
STATcmd_delete_hits0
STATcmd_delete_misses0
STATcmd_get0
STATcmd_get_hits0
STATcmd_get_misses0
STATcmd_flush0
STATcurr_items0
STATtotal_items0
STATbytes4198720
STATthreads8
END
quit
Connectionclosedbyforeignhost.@H_502_45@

猜你在找的NoSQL相关文章