我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...

苏南大叔在本文中,将要讲述phprocksdb扩展的事情。首先,必须承认一点,这个rocksdb是个非常非常小众的数据库。所以,在官方层面上,是没有专门用于phprocksdb扩展的。在github上面相关的搜索结果中,星值也都不多。对比实验了相关几个项目后,苏南大叔选了一个项目源码作为本文中的内容。

苏南大叔:php 的 rocksdb 扩展,如何编译安装使用 ? - php-extension-rocksdb
php 的 rocksdb 扩展,如何编译安装使用 ?(图5-1)

本文测试环境是:mac10.14.2/php7.2.7/phpize7/php-rocksdb

安装rocksdb

因为本文的测试环境是mac,所以直接使用下面的命令,略过了本文复杂的编译过程。

brew install rocksdb

详细内容,请点击这里:

下载源码

github上面看相关rocksdb的扩展信息的话,没有太权威的结果,在pecl网站上面也没有看到合适的rocksdb扩展。所以,基本上是硬要挑选一个扩展的节奏... 最终,苏南大叔选择的这个phprocksdb的扩展地址如下所示,选择的理由是:能正常编译通过使用,而且相对而言似乎是有更新的(其实没有)。所以,这个基本上是没得选择。

使用git克隆源码的方式如下:

git clone https://github.com/phpize7/php-rocksdb.git

苏南大叔:php 的 rocksdb 扩展,如何编译安装使用 ? - download-git
php 的 rocksdb 扩展,如何编译安装使用 ?(图5-2)

编译安装rocksdb扩展

本文的编译环境是mac,编译过程是非常经典的php扩展编译过程,编译的过程可以说是毫无波澜。

cd php-rocksdb
phpize
./configure
make
make install

然后就可以在扩展目录下面得到rocksdb.so文件了。然后在php.ini里面启用即可。在本例中,rocksdb.so文件的生成位置是:

/usr/local/Cellar/php/7.2.7/pecl/20170718/

苏南大叔:php 的 rocksdb 扩展,如何编译安装使用 ? - phpize
php 的 rocksdb 扩展,如何编译安装使用 ?(图5-3)

苏南大叔:php 的 rocksdb 扩展,如何编译安装使用 ? - get-rocksdb-so
php 的 rocksdb 扩展,如何编译安装使用 ?(图5-4)

修改php.ini文件:

extension=rocksdb.so;

重启php服务生效:

brew services restart php

使用范例

下面的代码是个简单的使用范例,注意需要指定rocksdb的目录路径,比如如下代码中的rocksdb-basic.test-db3。这是个目录的名字。不存在的话,会自动初始化一个出来。

$rocksdb_path = dirname(__FILE__) . '/rocksdb-basic.test-db3';
$db = new RocksDb\RocksDb($rocksdb_path, ['create_if_missing' => true]);
$db->put('key', 'value');
$db->get('key');
$db->delete('key');
$db->close();

苏南大叔:php 的 rocksdb 扩展,如何编译安装使用 ? - php-code
php 的 rocksdb 扩展,如何编译安装使用 ?(图5-5)

注意,页面代码结束时,要及时close()。否则,会报错。例如:

Fatal error: Uncaught RocksDb\Exception: IO error: While lock file: /code/www/sunan/rocksdb/rocksdb-basic.test-db3/LOCK: Resource temporarily unavailable 

相关链接

更多使用方法,可以查看官方的test目录里面的范例:

rocksdb的图形化管理界面:

总结

目前来看,rocksdbphp扩展中包含的函数,挺简单的。就put()/get()/delete/,以及open()/close()这几种。当然,本文中,仅仅是最简单的示意函数罢了。

想知道更多的rocksdb相关文章嘛?请点击下面的链接:

如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。

 【福利】 腾讯云最新爆款活动!1核2G云服务器首年50元!

 【源码】本文代码片段及相关软件,请点此获取更多信息

 【绝密】秘籍文章入口,仅传授于有缘之人   php    rocksdb