用php操作treapdb
treapdb是国内个人开发者的一个开源项目,支持memcache,thrift协议。但如果使用memcache协议,就无法支持range,prefix等特性了(如果丧失这些特性,还不如直接用memcache了吧)。
thrift是apache的一个项目,支持10余种语言。也要感谢facebook的大规模使用,让更多的人知道了这个东东。
作者提供了java/python的例子,这里仅提供php的操作方法。
关于thrift的编译/php扩展的编译,就不再啰嗦了,无非都是configure/make/phpize等命令,可以参考:
http://chanian.com/2010/05/13/thrift-tutorial-a-php-client/
http://blog.csdn.net/hshxf/archive/2010/06/12/5666145.aspx
根据接口定义生成php client代码
svn checkout http://treapdb.googlecode.com/svn/trunk/res . thrift --gen php service.txt |
下面直接上测试代码
# thrift提供的client包 $GLOBALS['THRIFT_ROOT'] = '/root/Downloads/thrift-0.5.0/lib/php/src'; # 为了方便,直接设置为include path set_include_path(get_include_path() .PATH_SEPARATOR .$GLOBALS['THRIFT_ROOT']); # include 需要的文件 require_once 'Thrift.php'; require_once 'protocol/TBinaryProtocol.php'; require_once 'transport/TSocket.php'; require_once 'transport/TBufferedTransport.php'; # include生成的类 require_once './service/TreapDBService.php'; # 下面是测试代码 $socket = new TSocket("192.168.191.107","11811"); $transport = new TBufferedTransport($socket); $protocol = new TBinaryProtocol($transport); $client = new TreapDBServiceClient($protocol); $transport->open(); # 测试get/set $client->put('key','val1'); echo $client->get('key')."\n"; # 测试prefix $prefix = $client->prefix('thing208', 10); var_dump($prefix); |
注:TSocket也支持持久连接。
原创文章如转载,请注明:转载自CODIGG [ http://www.codigg.com/ ]
本文链接地址:http://www.codigg.com/2010/12/php-treapdb-thrift/


十二月 11th, 2010 at 11:03
hello,又更新了,欢迎继续关注哦:-)
http://code.google.com/p/treapdb/
[回复]
一月 9th, 2011 at 08:58
很强大啊。
[回复]