在Riak中使用PHP客户端存储数据不起作用

时间:2014-03-18 10:14:49

标签: php nosql riak

我是riak的新手,我在Ubuntu 13.10中安装了RIAK和PHP客户端。使用PHP客户端在Riak中保存数据时遇到问题。我从git hub下载了Riak php客户端并完成了一个简单的字符串插入。但要求花了这么长时间。我等了大约30到40分钟。即便如此,我也没有收到服务器的回复。

我使用了以下代码。

<?php
require_once('riak-php-client/src/Basho/Riak/Bucket.php');
require_once('riak-php-client/src/Basho/Riak/Exception.php');
require_once('riak-php-client/src/Basho/Riak/Link.php');
require_once('riak-php-client/src/Basho/Riak/MapReduce.php');
require_once('riak-php-client/src/Basho/Riak/Object.php');
require_once('riak-php-client/src/Basho/Riak/StringIO.php');
require_once('riak-php-client/src/Basho/Riak/Utils.php');
require_once('riak-php-client/src/Basho/Riak/Link/Phase.php');
require_once('riak-php-client/src/Basho/Riak/MapReduce/Phase.php');
require_once('riak-php-client/src/Basho/Riak/Riak.php');

# Connect to Riak
$client = new Basho\Riak\Riak('127.0.0.1', 10017);

# Choose a bucket name
$bucket = $client->bucket('test');

# Supply a key under which to store your data
$person = $bucket->newObject('riak_developer_1', array(
                             'name' => "John Smith",
                             'age' => 28,
                             'company' => "Facebook"
                             ));

# Save the object to Riak
//echo '<PRE>';
//print_r($person);exit;
$person->store();

# Fetch the object
$person = $bucket->get('riak_developer_1');

# Update the object
$person->data['company'] = "Google";
$person->store();


?>

我已从我下载的git hub获取代码,并在“GitHub Riak-Php-Client”中安装了Riak-Php-Client。

当我在调用store函数之前打印riak对象时,我将获取riak对象中的数据。如果需要,我也可以发布该对象。请帮忙。我也没有收到任何错误。

提前致谢。

1 个答案:

答案 0 :(得分:2)

当前版本的PHP客户端不支持Protocol Buffers。如果您的节点具有默认设置,则端口10017用于协议缓冲区连接,而端口10018用于HTTP连接。

请在您的示例中将端口更改为10018,然后重试。