最近在想一些数据缓存的问题,一步一步的看到了TTSERVER(以前也短暂留意过,但没动手去尝试)
Tokyo Tyrant 是由同一作者开发的 Tokyo Cabinet 数据库网络接口。它拥有Memcached兼容协议,也可以通过HTTP协议进行数据交换。
Tokyo Tyrant 加上 Tokyo
Cabinet,构成了一款支持高并发的分布式持久存储系统,对任何原有Memcached客户端来讲,可以将Tokyo
Tyrant看成是一个Memcached,但是,它的数据是可以持久存储的。这一点,跟新浪的Memcachedb性质一样。
Tokyo Tyrant提供dbm数据库Tokyo
Cabinet的网络接口。它使用简单的基于TCP/IP的简单二进制协议进行通信。同时它拥有Memcached兼容协议并且可以用HTTP/1.1协
议进行数据交换。所以实现了跨平台,跨语言使用Tokyo
Tyrant。采用热备份,更新日志记录,复制(replication)来实现高可用性和高可靠性。到目前为止,Tokyo
Tyrant只能运行在Linux, FreeBSD, Mac OS X, Solaris。
在网上看到很多文章都说因为TTSERVER拥有Memcached兼容协议,所以可以让所有的memcache客户端进行操作,个人认为这个看法有点不妥,因为在测试的过程中发现是不能让原有的memcache进行操作,例如:JAVA。
一下是一些操作代码:
MemCachedClient mcc = new MemCachedClient();
String[] servers={mcinfo};
SockIOPool pool = SockIOPool.getInstance();
pool.setServers(servers);
……
mcc.set("MChealthcheck", "OK");
发现是不行。
PS:最近听见朋友说memcache可以做冗余,这个说法是不对,除非在应用端进行操作。估计他所看到的应该是新浪的memcachedb。
尝试一下python的也是不是,可以是我编码有问题吧。
虽然安装和使用都比较简单,但也为自己记录一下:
(TTSERVER作者的网站已变更,)
下载相关的安装包:做测试所下载的包是:tokyocabinet-1.4.46.tar.gz;tokyotyrant-1.1.41.tar.gz
安装过程:
1.tar -zxvf tokyocabinet-1.4.46.tar.gz && cd tokyotyrant-1.1.41 && ./configure && make && make instll
2.tar -zxvf tokyotyrant-1.1.41.tar.gz && cd tokyotyrant-1.1.41 && ./configure && make && make instll
安装过程中成功的提示为改相应软件包的欢迎提示语。
验证安装:
在tokyotyrant-1.1.41下运行:#./ttservctl start
#telnet 127.0.0.1 1978 默认的端口是1978,相关配置可以在ttservctl中更改
[ttserver]# curl -X PUT -d "sky"
Created
[ttserver]# curl
sky
在ttservctl可以进行修改达到所需的启动方式
ttserver --help
ttserver: the server of Tokyo Tyrant
usage:
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]
-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 : 指定每个同步日志文件的大小。
-uas : 使用异步IO记录更新日志(使用此项会减少磁盘IO消耗,但是数据会先放在内存中,不会立即写入磁盘,如果重启服务器或ttserver进程被kill掉,将导致部分数据丢失。一般情况下不建议使用)。
-sid num : 指定服务器ID号(当使用主辅模式时,每台ttserver需要不同的ID号)
-mhost name : 指定主辅同步模式下,主服务器的域名或IP地址。
-mport num : 指定主辅同步模式下,主服务器的端口号。
-rts path : 指定用来存放同步时间戳的文件名。
网上的一些启动方式有:
(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.120.30:
ulimit -SHn 51200
ttserver
-host 192.168.120.30 -port 11211 -thnum 8 -dmn -pid
/ttserver/ttserver.pid -log /ttserver/ttserver.log -le -ulog /ttserver/
-ulim 128m -sid 30 -mhost 192.168.120.31 -mport 11211 -rts
/ttserver/ttserver.rts /ttserver/database.tch
服务器192.168.120.31:
ulimit -SHn 51200
ttserver
-host 192.168.120.31 -port 11211 -thnum 8 -dmn -pid
/ttserver/ttserver.pid -log /ttserver/ttserver.log -le -ulog /ttserver/
-ulim 128m -sid 31 -mhost 192.168.120.30 -mport 11211 -rts
/ttserver/ttserver.rts /ttserver/database.tch
阅读(1948) | 评论(1) | 转发(0) |