SAE kv的使用

刚刚测试了下SAE新出的服务KV,确实蛮好用的,这是SAE研发的跟随大流的NOSQL,高达1T的存储容量确实不是盖得。

而且有很高速的读写速度,等下想办法测试下读写的速度,现在给出在一个页面设置kv的值,然后在另外一个地方读出kv的值,我遇到的问题就是在另外一个页面读出的时候没有设置初始化,导致了读出的errno一直是30,一查是什么30 “KV Router Server Internal Error”。

后来实验性的在index2.php的页面中加了一句初始化的命令就搞定了。

index.php的code

     <?php
 $kv = new SaeKVClient();
 $ret = $kv->init(); // 初始化KVClient对象
// var_dump($ret);
// $error_num=$kv->errno() ;
 //echo ($error_num);
 
 // 更新key-value
 $ret = $kv->set('abc', 'aaaaaa');
 $ret1= $kv->set('abcd','Just a test');
 //var_dump($ret);
 
 // 获得key-value
 $ret = $kv->get('abc');
 $ret1= $kv->get('abcd');
 echo($ret);
 echo($ret1);
 ?>

index2.php 读出index设置的kv的值得代码

  <?php
//test get kvaule in other file .
 $kvget = new SaeKVClient();
 $ret = $kvget->init(); // 初始化KVClient对象,test adding init
// var_dump($ret);
// $error_num=$kv->errno() ;
 //echo ($error_num);
 
 // 更新key-value
// $ret = $kv->set('abc', 'aaaaaa');
// $ret1= $kv->set('abcd','Just a test');
 //var_dump($ret);
 
 // 获得key-value
 $ret = $kvget->get('abc');
 $ret1= $kvget->get('abcd');
 $error_num=$kvget->errno();
 echo($error_num);//echo error number
 echo($ret);
 echo($ret1);
?>

一定要注意的就是index2.php中的初始化,没有初始化进行任何的操作都会出现问题的。

接下来就编一个大的程序测试下读写的速度吧:

其实跑完还是没有发现能达到常规测试的10W条/s的速度,这个是kv的测试结果

the start time is1310528492
the End time is1310528521
Total cost time is29
The speed is3448.27586207e/s

http://noise.sinaapp.com/kv/点击可以查看。

相对来讲比MYSQL还是快点MYSQL的测试结果在这:

the start time is1310528478
the End time is1310528483
Total cost time is5
The speed is2000e/s

http://noise.sinaapp.com/kv/mysql.php点击可以运行,相对来讲还是快了快两倍了还是不错的。