设为首页 收藏本站
查看: 1058|回复: 0

[经验分享] Tokyo Tyrant 安装和配置

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-5-8 08:38:44 | 显示全部楼层 |阅读模式
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依赖
1
yum install -y zlib-devel bzip2-devel



如果不安装,可能会碰到如下错误:
1
configure: error: bzlib.h is required




2.安装Tokyo Cabinet
1
2
3
4
5
6
7
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




3.安装Tokyo Tyrant
1
2
3
4
5
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,可能会报如下错误:
1
configure: error: tcutil.h is required



1
2
make
make install




4.查看参数
1
2
cd /usr/local/ttserver/
./tokyotyrant/bin/ttserver -h



1
2
3
./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参数注释:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
-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.创建数据文件存放目
1
2
3
mkdir -p /ttserver/data #数据文件
mkdir -p /ttserver/ulog #同步日志
mkdir -p /ttserver/log #日志文件




2.设置文件描述符大小
1
vim /etc/security/limits.conf



* soft nofile 204800
* hard nofile 204800

1
ulimit -u 204800 -HSn 204800



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

3.配置全局参数
1
vi /etc/profile



在里面加入
export PATH="$PATH:/usr/local/ttserver/tokyotyrant/bin:/usr/local/ttserver/tokyotyrant/sbin"
1
2
. /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) 单机模式
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上执行:
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 110 -mhost 192.168.11.52 -mport 11211 -rts /ttserver/ttserver.rts /ttserver/data/casket.tch



在192.168.11.52上执行:
1
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,设置相关参数:
(以单机模式配置为示例)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#! /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.验证启动成功
1
2
ps aux | grep ttserver
telnet 192.168.11.51 1978



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
Trying 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.






运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-64788-1-1.html 上篇帖子: 系统启动流程 chroot ldd,linux运行级别 下篇帖子: linux关机重启五种方法(sysrq shutdown halt init ipmi)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表