安装
$ git clone https://github.com/google/leveldb.git
$ cd leveldb.git
$ make
#这里会报错,prviate变量不能访问,请参考另一篇文章.
$ git clone git://github.com/reeze/php-leveldb.git
$ cd php-leveldb
$ phpize
$ ./configure --with-leveldb=/your level setup path/leveldb-1.7.0 --with-php-config=/usr/bin/php-config
$ make
$ make install
php测试
$path ="./1.data";
$leveldb = new levelDb("$path");
for($i=0;$i < 1000000;$i++){
$key = 'a'.$i;
#var_dump($leveldb->set('a'.$i,"aaaaaaaaa"));
var_dump($leveldb->get($key));
}
测试
众所周知, LevelDB 只是一个 C/C++ 的编程语言库, 所以, PHP, Python 等编程语言无法直接使用 LevelDB, 必须 将 LevelDB 封装成一个网络服务器.
SSDB 就是一个 LevelDB 的服务器(LevelDB Server), 以 LevelDB 作为存储引擎, 支持 PHP/Java/Python/C/C++ 等客户端. 下面是一个 PHP 连接 SSDB的例子:
<?php
require_once('SSDB.php');
$ssdb = new SSDB('127.0.0.1', 8888);
$resp = $ssdb->set('key', '123');
$resp = $ssdb->get('key');
echo $resp->data; // output: 123
完整 API 见 SSDB 项目 Wiki.
更重要的是, SSDB 支持 Redis 中的 zset 数据类型, 以及 hashmap 类型, 所以不是一个简单的 KV 存储服务器, 实际应用中, KV 存储的局限性非常大.