因为撤离SAE的原因,所以...
配置方法是先安装大于3.9版本以上的cmake,Debian 9默认apt安装的版本是3.7的,安装好cmake后克隆levelDB项目:https://github.com/google/leveldb,用下面命令配置LevelDB,目的是生成动态链接版本:
cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=ON .
然后构建并安装:
cmake --build . sudo make install
注意安装结果是so文件.
这样Level DB就已经完成了,Level DB比Redis好处是持久化,比SQL方便的地方就是简单,缺点就是数据多的时候,不好分类管理.另外Level DB单纯C++来说,也是很好访问的.
接着是PHP扩展,建议编译安装,因为系统带的非常老旧.我这里基于有php7.0以及php7.0-dev为例,安装这个服务,PHP扩展地址:https://github.com/reeze/php-leveldb
然后使用.configure => make => sudo make install就可以得到扩展模块了.
当然还要添加到php.ini配置里面.
最简单的测试.输出:string(5) "Value"
<?php $db = new LevelDB("/tmp/test-db"); $db->set("Key", "Value"); var_dump($db->get("Key")); $db->delete("Key");
最简单的C++例子.
#include <iostream> #include <db.h> using namespace std; int main(int argc, char *argv[]) { leveldb::DB *db; leveldb::Status s ; leveldb::Options options; options.create_if_missing = true; string key = "username"; string value = "mypass"; string value_get; leveldb::DB::Open(options, "/tmp/test-db", &db); s = db->Put(leveldb::WriteOptions(), key, value); s = db->Get(leveldb::ReadOptions(), key, &value_get); cout << value_get << endl; delete db; return 0; }
编译方法:
g++ -lleveldb -lpthread leveldb_test.cpp -I/usr/local/include/leveldb -Ofast -o leveldb_test
运行结果:
反复执行多次PHP脚本,这样就得到PHP的编译缓存,结果还是C语言快.(这不是废话吗,PHP的模块也是C写的.)