tokyocabinet:一个key-value的DBM数据库,但是没有提供网络接口,以下称TC。PHP
tokyocabinet :一个key-value的DBM数据库,但是没有提供网络接口,以下称TC。
tokyotyrant :是为TC写的网络接口,他支持memcache协议,也可以通过HTTP操作,以下称TT。
Tokyo Cabinet 是一款 DBM 数据库,Tokyo Cabinet基于GNU Lesser General Public License协议发布,采用C语言开发,它可以运行在任何支持C99和POSIX平台上使用。相比一般的DBM数据库有以下几个特点:空间小,效率高,性能高,可靠性高,多种开发语言的支持(现已提供C,Perl,Ruby,Java,Lua的API),支持64位操作系统。该数据库读写非常快,哈希模式写入100万条数据只需0.643秒,读取100万条数据只需0.773秒,是 Berkeley DB 等 DBM 的几倍。
Tokyo Tyrant 加上 Tokyo Cabinet,构成了一款支持高并发的分布式持久存储系统,对任何原有Memcached客户端来讲,可以将Tokyo Tyrant看成是一个Memcached,但是,它的数据是可以持久存储的。
一、安装
1.tokyocabinet-1.4.46.tar.gz(数据库) #tar -zxvf tokyocabinet-1.4.47.tar.gz #cd tokyocabinet-1.4.47 #./configure --prefix=/usr/local/tokyocabinet #make #make install
2.tokyotyrant-1.1.41.tar.gz(网络接口)
#tar -zxvf tokyotyrant-1.4.47.tar.gz #cd tokyotyrant-1.4.47 #./configure --prefix=/usr/local/tokyotyrant #make #make install
3.tokyo_tyrant-0.6.0.tgz(PHP扩展)#tar -zxvf tokyotyrant-1.4.47.tar.gz #cd tokyotyrant-1.4.47 #./configure --prefix=/usr/local/tokyotyrant #make #make install
二、简单配置PHP配置后重置apache#vi /usr/local/php/etc/php.ini // 添加如下 [totyr_tyrant] extension = "/usr/local/php5/lib/php/extensions/no-debug-non-zts-20090626/tokyo_tyrant.so";
三、单机启动mkdir -p /ttserver/ 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.tcb#lmemb=1024#nmemb=2048#bnum=10000000
四、调用方式 1.任何Memcached客户端均可直接调用tokyotyrant。<?php $mem=new Memcache();
a =mem->connect("127.0.0.1",11211);
b =mem->add("key2","value2");
print_r( $mem->get("key2"));
echo "\n";
$mem->add("key3",array("value3"=>"this is value3"));
print_r($mem->get("key3"));
echo "\n";
?> 2.还可以通过HTTP方式调用,下面以Linux的curl命令为例,介绍如何操作tokyotyrant: (1)、写数据,将数据“value”写入到“key”中:
curl -X PUT http://127.0.0.1:11211/key -d "value"
(2)、读数据,读取“key”中数据:
curl http://127.0.0.1:11211/key
(3)、删数据,删除“key”:
curl -X DELETE http://127.0.0.1:11211/key
五、遇到的问题
1.关于反序列化问题
请看解决方法http://willko.javaeye.com/admin/blogs/332982
2.在大数据量下的不稳定
在数据达到30多G的时候,经常出现写入失败,详见http://www.cnblogs.com/sunli/archive/2010/06/20/1761412.html
转自:http://hi.baidu.com/caltonnj/item/633656f4e4f4ad2a743c4ca5
本文由来源 21aspnet,由 javajgs_com 整理编辑,其版权均为 21aspnet 所有,文章内容系作者个人观点,不代表 Java架构师必看 对观点赞同或支持。如需转载,请注明文章来源。