於 PHP 安裝使用 Google LevelDB extension

LevelDB (leveldb - a fast and lightweight key/value database library) 是 Google 開發非常快速的 key-value 儲存的函式庫, 效能看起來相當不錯: LevelDB Benchmarks, 且 LevelDB 的資料, 都會經過 Snappy 壓縮, 所以資料也會比較小.

註: 下述安裝環境為 Debian / Ubuntu Linux

於 PHP 增加 Google LevelDB 的 Extension

有 LevelDB 的 Source code, 再來找 PHP 的 ext 是否有人寫, 於是就找到: leveldb for php

也正好找到此篇有人已經有做過編譯: 從原始碼編譯 Google LevelDb 的 PHP 擴展, 下述步驟摘錄自此篇.

安裝、編譯步驟
  1. BUILD=/usr/local/
  2. # 編譯安裝 LevelDB
  3. svn export http://leveldb.googlecode.com/svn/trunk/ leveldb
  4. cd $BUILD/leveldb
  5. make -j8 OPT="-O2 -DNDEBUG -fPIC"
  6. # 編譯安裝 php-leveldb ext
  7. git clone git://github.com/arraypad/php-leveldb.git
  8. cd $BUILD/php-leveldb
  9. phpize
  10. ./configure --with-leveldb=$BUILD/leveldb
  11. make -j8
  12. make test
  13. make install
  14. # 於 Apache 的 PHP 設定 leveldb.so (extenstion)
  15. vim /etc/php5/cli/conf.d/leveldb.ini # 內容如下述
    extension=leveldb.so
  16. /etc/init.d/apache2 restart # 到此就可以開始使用 LevelDB 囉~

LevelDB 於 PHP 的操作與使用範例

範例可於 php-leveldb 的 tests 裡面找到: basic.phpt (下述參考整理自此檔案)

範例
<?php
if (!extension_loaded('leveldb')) {
    die('skip leveldb not loaded');
}

$path = '/tmp/leveldb.test';
$db = new LevelDb($path);

echo "* setting (foo=bar): \n";
var_dump($db->set('foo', 'bar')); // bool(true)

echo "* getting (foo): \n";
var_dump($db->get('foo')); // string(3) "bar"

echo "* delete (foo): \n";
var_dump($db->delete('foo')); // bool(true)

echo "* getting (foo): \n";
var_dump($db->get('foo')); // bool(false)
?>

相關新聞

作者: Tsung

對新奇的事物都很有興趣, 喜歡簡單的東西, 過簡單的生活.

發表迴響

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料