关于TTSERVER的一些网络资料整理

参考网址:

张宴:Tokyo Cabinet数据库及其扩展应用:http://tech.it168.com/a2010/0419/875/000000875687_all.shtml

利用Tokyo Tyrant构建兼容Memcached协议、支持故障转移、高并发的分布式key-value持久存储系统[原创]


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,但是,它的数据是可以持久存储的。

ttserve安装

  下载zlib和bzip并进行安装,因为我使用的是ubuntu系统,所以直接apt-get install libbz2-dev就 ok了。  安装tokyo cabinet  下载 tokyocabinet-1.4.41.tar.gz  tar zxvf tokyocabinet-1.4.41.tar.gz  cd tokyocabinet-1.4.41/  64位系统安装方法  ./configure  make   make install  32位系统安装方法  ./configure --enable-off64 #启动64位偏移,因为本机是32位,如果不加此参数,数据库文件超过2G就会崩溃  make  make install  因为我的机器是32位,所以选择第二种方法  安装tokyo tyrant  tar zxvf tokyotyrant-1.1.40.tar.gz  cd tokyotyrant-1.1.40  ./configure  make   make install  创建tokyo tyrant数据文件存放的目录  mkdir -p /ser/ttserver  ttserver相关参数  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] [-ext path] [-mask expr] [-unmask expr] [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 : 指定用来存放同步时间戳的文件名。  -ext path : 扩展的脚本文件  -mask expr : 需要禁止的命令,多个命名用","隔开  -unmaks expr : 允许的命令   单机模式启动  ttserver -host 127.0.0.1 -port 11211 -thnum 8 -dmn -pid /ser/ttserver/ttserver.pid -log /ser/ttserver/ttserver.log -le -ulog /ser/ttserver/ -ulim 128m -sid 1 -rts /ser/ttserver.rts /ser/ttserver/database.tch  启动的时候,根据参数database名来确定使用的TC数据库类型。如果为"*",则使用内存hash表,如果为"+",则使用内存B+库,如果后缀为".tch",则使用hash表,如果后缀为".tcb",则使用B+树数据库,如果后缀为".tcf",则使用定长数组。如果dbname参数被省略,则采用内存hash数据库。  如果使用的是哈希数据库,可以指定参数“#bnum=xxx”来提高性能。它可以指定bucket存储桶的数量。例如指定“#bnum=1000000”,就可以将最新最热的100万条记录缓存在内存中。  ttserver -host 127.0.0.1 -port 11211 -thnum 8 -dmn -pid /ser/ttserver/ttserver.pid -log /ser/ttserver/ttserver.log -le -ulog /ser/ttserver/ -ulim 128m -sid 1 -rts /ser/ttserver.rts /ser/ttserver/database.tch#bnum=1000000  如果大量的客户端访问ttserver,请确保文件描述符够用。许多服务器的默认文件描述符为1024,可以在启动ttserver前使用ulimit命令提高这项值。例如:ulimit -SHn 51200  关闭服务  cat /ser/ttserver/ttserver.pid或者ps -ef|grep ttserver  kill -TERM 10095  调用  写入  curl -X PUT http://127.0.0.1:11211/key -d "ttserver"  读取  curl http://127.0.0.1:11211/key  删除  curl -X DELETE http://127.0.0.1:11211/key  测试写入和读取1000条数据  starttime=`date "+%s"`;for((i=1;i<1001;i++)); do curl -X PUT http://127.0.0.1:11211/key_$i -d "1976年8月参加工作。1995年11月在共青团中央第十三届四次全体会议上被增补为共青团中央书记处书记。1998年6月在共青团十四届一中全会一次会议上当选共青团中央书记处第一书记。2003年7月在共青团十五届一中全会第一次会议上再次当选团中央书记处第一书记。2006年9月,中共中央决定,周强任湖南省委委员、常委、副书记。同年9月30日,湖南省第十届人民代表大会常务委员会第二十三次会议决定周强为湖南省人民政府代理省长。"; done;endtime=`date "+%s"`;echo $(($endtime-$starttime));  starttime=`date "+%s"`;for((i=1;i<1001;i++)); do curl http://127.0.0.1:11211/key_$i; done;endtime=`date "+%s"`;echo $(($endtime-$starttime));

你可能感兴趣的:(ttserver)