TTServer(tokyotyrant)的helloworld

常用命令:
apt-get install tokyotyrant
apt-get install python-tokyotyrant
watch -n 1 "tcrmgr inform -port 11211 -st 10.1.224.171"
备份tcrmgr copy -port 11212 10.1.224.171 /data/backdata/yiyiback0607.tch
tcrmgr vanish -port 11211 10.1.224.171   清除
tcrmgr put -port 11211 10.1.224.171 hao aifangfang
tcrmgr list -port 11211 10.1.224.171
tcrmgr out -port 11211 10.1.224.171 hao
ps -ef|grep ttserver

ulimit -SHn 512000
tcrtest write -port 11212 -cnum 768 10.1.224.171 99999999
lsof -c tcrtest|wc -l

ttserver -host 10.1.224.171 -port 11212 -thnum 1024 -dmn -pid /data/ttserver_cache/ttserver.pid -log /data/ttserver_cache/ttserver.log -le -ulog /data/ttserver_cache/ulog/ -ulim 128m -sid 171_2 -rts /data/ttserver_cache/ttserver.rts /data/ttserver_cache/cache.tcb#lmemb=1024#nmemb=2048#bnum=20000000

指南参考http://code.google.com/p/xmemcached/wiki/User_Guide_zh

监控命令
tcrmgr inform -port 11211 -st 10.1.224.171 


装完后,重启ubuntu会自动启动线程。ps查看
/usr/sbin/ttserver -port 0 -dmn -pid /var/run/tokyotyrant/tokyotyrant.pid -log /var/log/tokyotyrant/tokyotyrant.log -host /var/run/tokyotyrant/tokyotyrant.sock /var/lib/tokyotyrant/data/tokyotyrant.tch#bnum=1000000


参考http://gqf2008.iteye.com/blog/366963
http://www.162cm.com/p/tokyotyrant.html
在ubuntu11.04下

apt-get install libbz2-dev 
apt-get install tokyotyrant

mkdir /ttservcer

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


ps -ef|grep ttserver
kill -TERM 3683


启动之后:
curl -X PUT http://127.0.0.1:11211/hao -d "ningge"
添加值
curl http://127.0.0.1:11211/hao 访问值
curl -X DELETE http://127.0.0.1:11211/hao 删除值
或用:
tcrmgr put -port 20000 192.168.0.100 test1 value1  增加
tcrmgr get -port 20000 192.168.0.100 test1         获取
tcrmgr out -port 20000 192.168.0.100 test1         删除
tcrmgr list -port 20000 192.168.0.100              列出所有数据的key

参考http://blog.csdn.net/leonzhang2008/archive/2010/11/23/6029635.aspx

摘抄:
-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 : 指定用来存放同步时间戳的文件名。

------------------------java--------------------
http://code.google.com/p/tokyotyrant-java/downloads/list
这个没试验,下面这个好使,据说是memcache的协议
http://code.google.com/p/xmemcached/
XMemcachedClient client =new XMemcachedClient(AddrUtil.getAddresses("10.1.224.171:11211"));
		if (!client.set("hello", 0, "okok")){   //对应cnt_put
	       System.err.println("set error");   
		}  
		client.add("hello", 0, "okok1");  //对应cnt_putkeep
		client.replace("hello", 0, "okok2"); 
		String name=(String)client.get("hello");  
		System.out.println(name);
		
		List<String> keys=new ArrayList<String>();   
		keys.add("hello");   
		keys.add("hao"); 
		Map<String,Object> map=client.get(keys);   
		System.out.println(map.get("hao"));
		client.shutdown();

或者:
MemcachedClientBuilder builder = new XMemcachedClientBuilder(
				AddrUtil.getAddresses("10.1.224.171:11211"));
		MemcachedClient memcachedClient = builder.build();
		try {
			memcachedClient.set("hello", 0, "Hello,xmemcached");
			String value = memcachedClient.get("hello");
			System.out.println("hello=" + value);
			memcachedClient.delete("hello");
			value = memcachedClient.get("hello");
			System.out.println("hello=" + value);
		} catch (MemcachedException e) {
			System.err.println("MemcachedClient operation fail");
			e.printStackTrace();
		} catch (TimeoutException e) {
			System.err.println("MemcachedClient operation timeout");
			e.printStackTrace();
		} catch (InterruptedException e) {
			// ignore
		}
		try {
			// close memcached client
			memcachedClient.shutdown();
		} catch (IOException e) {
			System.err.println("Shutdown MemcachedClient fail");
			e.printStackTrace();
		}



-------------------------------------------
Tokyo Cabinet 单个数据库文件记录数超过1亿,性能会急剧下降。Tokyo Tyrant 的新版本支持了数据库文件拆分,例如 ttserver -mul 256 database.tcb 启动TT时,将会自动拆分成256个文件,存取时,根据key哈希到不同的文件。


-----------------------------详解---------------------
[@ubuntu_106_182 ~]# tcrmgr inform -port 11212 -st 192.168.106.182
version 1.1.40
libver  323
protver 0.91
os      Linux
time    1306904089.978848
pid     14085
sid     182
type    B+ tree
path    /data/ttserver_cache/cache.tcb
rnum    8312540                           当前键值的数量
size    19317456896
bigend  0
fd      313
loadavg 1.530000
memsize 5984587776
memrss  256909312
ru_user 132652.434764
ru_sys  73513.136304
ru_real 3717761.706554
cnt_put 196309068                       put操作的次数,put同一个key也算
cnt_putkeep     0
cnt_putcat      0
cnt_putshl      0
cnt_putnr       0
cnt_out 2030428                         out操作的次数
cnt_get 4483735690                      读取key的次数
cnt_mget        0
cnt_vsiz        0
cnt_iterinit    1
cnt_iternext    3544
cnt_fwmkeys     0
cnt_addint      0
cnt_adddouble   0
cnt_ext 0
cnt_sync        0
cnt_optimize    0
cnt_vanish      0
cnt_copy        0
cnt_restore     0
cnt_setmst      0
cnt_rnum        0
cnt_size        0
cnt_stat        207543170
cnt_misc        0
cnt_repl        0
cnt_put_miss    0
cnt_out_miss    2012252
cnt_get_miss    159781902             读取,但是key不存在的次数





猜你喜欢

转载自haoningabc.iteye.com/blog/1064936