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不存在的次数