こんにちは。
昨年の10月末に、人力車で初出社した神崎です。
TokyoCabinet/TokyoTyrantをPHPで使う方法を簡単に書きます。
まず、TCはファイルにデータを保存しデータの永続化を可能にしたKVSで高速に動作します。
TTはTCのリモートアクセスをするためのラッパーで、memcache互換のプロトコルもあります。
TC/TTをPHPから利用するには
memcacheのプロトコルを利用しMemcache関数を使う方法や
Openpear.orgで公開されているPurePHPのNet_TokyoTryantを利用することができます。
Memcache関数を使う場合
$ip = "127.0.0.1";
$port = 1978;
$memcache = new Memcache();
/**
* connect
*/
if (!$memcache->pconnect($ip, $port)) {
echo "connect error";
}
/**
* put
*/
$memcache->set('now',date('Y-m-d H:i:s'));
/**
* get
*/
$result = $memcache->get('now');
var_dump($result);
/**
* delete
*/
$memcache->delete('now');
Net_TokyoTyrantを利用する場合
require_once 'Net/TokyoTyrant.php';
/**
* connect
*/
$tt = new Net_TokyoTyrant();
$tt->connect($ip, $port);
/**
* put
*/
$tt->set('now',date('Y-m-d H:i:s'));
$tt->set('token',md5(uniqid()));
$tt->set('ipod','5g');
$tt->set('iphone','3gs');
/**
* get
*/
var_dump($tt->get('now'));
// 複数のkeyの値を取得
var_dump($tt->mget(array('now', 'token')));
// keyの一部でリストを取得
var_dump($tt->fwmkeys('ip', 100));
$fwmkeys = $tt->fwmkeys('ip', 100);
foreach($fwmkeys as $key) {
echo $key . ":" . $tt->get($key) . "n";
}
/**
* out
*/
$tt->out('now');
高速で動作して欲しいことに加えてデータの永続化が必要な要件においては
TC/TTを利用することを考えてみるのも良いかもしれません。
http://1978th.net/tokyocabinet
http://1978th.net/tokyotyrant
http://openpear.org/package/Net_TokyoTyrant





















