Tokyo Cabinet和Tokyo Tyrant及PHP扩大包的安装

1. TTServer介绍:

Tokyo Cabinet 是一款DBM 数据库,该数据库读写很是快,哈希模式写入100万条数据只需0.643秒,读取100万条数据只需0.773秒,是Berkeley DB 等DBM 的几倍。哄骗Tokyo Tyrant构建兼容Memcached和谈、支撑故障转移、高并发的分布式key-value持久存储体系。key-value分布式存储体系查询速度 快、存放数据量大、支撑高并发,很是合适经由过程主键进行查询,但不克不及进行错杂的前提查询。


Tokyo Tyrant 是由同一作者开辟的Tokyo Cabinet 数据库收集接口。它拥有Memcached兼容和谈,也可以经由过程HTTP和谈进行数据互换。Tokyo Tyrant 加上Tokyo Cabinet,构成了一款支撑高并发的分布式持久存储体系,对任何原有Memcached客户端来讲,可以将Tokyo Tyrant算作是一个Memcached,然则,它的数据是可以持久存储的


根蒂根基概念:

Tokyocabinet: 一个key-value的DBM数据库,然则没有供给收集接口,简称TC。

Tokyotyrant: 是为TC写的收集接口,他支撑memcache和谈,也可以经由过程HTTP操纵,简称TT。


2. 包下载:

# wgethttp://tokyocabinet.sourceforge.net/tokyocabinet-1.4.28.tar.gz

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


3. 安装tokyocabinet

# tar -zxvftokyocabinet-1.4.28.tar.gz;

# cd tokyocabinet-1.4.28;

# ./configure--prefix=/usr/local/tokyocabinet


*** 题目***

a. 编译器没有安装,解决办法:

# yum –y install gcc.i386


b. zlib组件找不到,解决办法:

# yum install bzip2.i386bzip2-devel.i386


4.安装tokyotyrant

# tar -zxvftokyotyrant-1.1.33.tar.gz

# cd tokyotyrant-1.1.33

# ./configure--prefix=/usr/local/tokyotyrant --with-tc=/usr/local/tokyocabinet

#make && make install


注:安装Tokyo Cabinet时指定目次,安装Tokyo Tyrant时用--with-tc指定Tokyo Cabinet的目次。


5. 创建启动用户,并启动。

#mkdir /var/lib/ttserver --创建数据文件存放目次

#groupadd ttserver --添加组

#useradd –m –s /bin/bash –g ttserver ttserver --创建用户
#chown –R ttserver.ttserver /var/lib/ttserver/

创建用户ttserver,办事会以ttserver用户启动。


#cd /usr/local/

#chown -R ttserver.ttserver tokyocabinet/ tokyotyrant/ --调剂权限

#su ttserver;

#./bin/ttserver -host 127.0.0.1 -port 11219 -thnum 8 -dmn -pid /var/lib/ttserver/ttserver.pid -log /var/lib/ttserver/ttserver.log -le -ulog /var/lib/ttserver/ -ulim 128m -sid 1 -rts /var/lib/ttserver/ttserver.rts /var/lib/ttserver/database.tcb


这里会失足,解决规划如下

cd /usr/local/tokyotyrant/lib

ln -s /usr/local/tokyocabinet/lib/libtokyocabinet.so.8 libtokyocabinet.so.8


在临盆办事器上确保文件描述符够用,默认为1024,启动ttserver前可进步此项值:

# ulimit -SHn51200


参数申明:

ttserver [-host name] [-port num] [-thnum num] [-tout num][-dmn] [-pid path] [-log path] [-ld|-le] [-ulog path] [-ulim num] [-uas] [-sidnum] [-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地址。集群

集群

  -rts path : 指定用来存放同步时候戳的文件名。


6. 验证办事

经由过程http试调用,以curl号令为例,介绍如何操纵tokyotyrant:

(1). 写入数据库,将数据”value”写入到”key”中:

[root@localhosttokyotyrant]# curl -X PUT http://127.0.0.1:11219/key -d "value"

Created


(2). 读取”key”的值:

[root@localhosttokyotyrant]# curl http://127.0.0.1:11219/key

value


(3). 删除”key”的数据:

[root@localhosttokyotyrant]# curl -X DELETE http://127.0.0.1:11219/key

OK


7. 停止办事

找到ttserver办事过程号,并kill掉:

#kill -TERM `cat /var/lib/ttserver/ttserver.pid`


参考材料:

(1). http://blog.s135.com/post/362/4/1/

(2). http://www.162cm.com/p/tokyotyrant.html#toc23



安装PHP扩大


wget http://pecl.php.net/get/tokyo_tyrant-0.5.0.tgz

tar zxvf tokyo_tyrant-0.5.0.tgz

cd tokyo_tyrant-0.5.0

/usr/local/php/bin/phpize

./configure --with-php-config=/usr/local/php/bin/php-config --with-tokyo-tyrant=/usr/local/tokyotyrant --with-tokyo-cabinet-dir=/usr/local/tokyocabinet

make

make install


将生成的扩大包文件拷到指定目次下。

cp /usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/tokyo_tyrant.so /usr/local/php/etc/ext/tokyo_tyrant.so

安装完成今后,在php.ini里面增长一行extension = tokyo_tyrant.so,然后tt扩大就生效了。



应用的完全文档

http://us3.php.net/manual/zh/book.tokyo-tyrant.php

二、配置

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



你可能感兴趣的:(Tokyo Cabinet)