海运的博客

NoSQL持久化存储之LevelDB

发布时间:January 2, 2014 // 分类:NoSQL // No Comments

安装LevelDB:

cd /usr/local/src/
wget http://leveldb.googlecode.com/files/leveldb-1.15.0.tar.gz
tar zxvf leveldb-1.15.0.tar.gz 
cd leveldb-1.15.0
make
cp libleveldb.* /usr/local/lib/
cp -r include/leveldb /usr/local/include/

LevelDB提供了一个测试程序:

make db_bench
cp db_bench /usr/local/bin/
db_bench --num=100000000 --write_buffer_size=$((256*1024*1024))

安装PHP扩展,https://github.com/reeze/php-leveldb

git clone https://github.com/reeze/php-leveldb.git
cd php-leveldb/
phpize
./configure
make
make install
echo 'extension=leveldb.so' >> /etc/php.ini

测试下下写入2亿数据用时30分钟,然后读取单个key用时0.02秒左右。

<?php
   $start = microtime ( true ); 
   $db = new LevelDB("/tmp/leveldb-test2-db");
   for($i=1; $i<=200000000; $i++)
   {
      $key = sprintf('%012d', $i);
      $db->put("queue-$key", "value$i@gmail.com");
   }
   $end = microtime ( true ); 
   echo "脚本执行时间".($end - $start)."\n";  
   //$db->get('key');
?>

前端可使用:Kyoto Tycoon

标签:none

评论已关闭

分类
最新文章
最近回复
  • 海运: 不好意思,没有。
  • zongboa: 您好,請問一下有immortalwrt設定guest Wi-Fi的GUI教學嗎?感謝您。
  • 海运: 恩山有很多。
  • swsend: 大佬可以分享一下固件吗,谢谢。
  • Jimmy: 方法一 nghtp3步骤需要改成如下才能编译成功: git clone https://git...
  • 海运: 地址格式和udpxy一样,udpxy和msd_lite能用这个就能用。
  • 1: 怎么用 编译后的程序在家里路由器内任意一台设备上运行就可以吗?比如笔记本电脑 m参数是笔记本的...
  • 孤狼: ups_status_set: seems that UPS [BK650M2-CH] is ...
  • 孤狼: 擦。。。。apcupsd会失联 nut在冲到到100的时候会ONBATT进入关机状态,我想想办...
  • 海运: 网络,找到相应的url编辑重发请求,firefox有此功能,其它未知。