Riak是Basho开发的一个开源的分布式的 key-valueNoSQL.
他的存储引擎使用了google的levelDb,所以它性能极其的快速高效,而且操作简便. 他从底层上提供了HTTP/JSON的查询接口,这让性能更进一步.
现在只对使用PHP操作riak的get,put做一个简单的实例:
<?php
$conn = new \Riak\Connection("192.168.1.201", 10017);
$bucket = new \Riak\Bucket($conn, 'Bucket1');
// 设置属性,关闭siblings
$newProps = new \Riak\BucketPropertyList();
$newProps->setAllowMult(0);
$bucket->setPropertyList($newProps);
// 写入数据
$keyName = '/'.time().'/gg.gif';
$obj = new \Riak\Object($keyName);
$content = file_get_contents('images/gg.gif');
$obj->setContent($content);
$obj->setContentType("image/gif");
$bucket->put($obj);
// 读取数据
$response = $bucket->get($keyName);
if ($response->hasObject()) {
$readdenObject = $response->getFirstObject();
header("Content-type:" . $readdenObject->getContentType());
$picturedata = $readdenObject->getContent();
echo $picturedata;
} else {
echo "No Object in Get";
}
除了get, put, 还有delete, counter, getConnection等方法, 可以通过get_class_methods或反射API获取这些信息.
官方链接: http://basho.com/
GITHUB: https://github.com/php-riak/php_riak