忍者ブログの元開発者が送る愛と感動と涙のスペクタクル。プログラムの開発日誌やタダの日記です。
こんにちは。misneyです。
昨日は初めてtokyo tyrantを使ってみました。
tokyo tyrantは、tokyo cabinetを使って上手い具合にレプリケーションしてくれるような物らしいです。
memcachedみたいに、落ちたら消えるってのは嫌!でも高速キャッシュを使いたいなんて場合に使うんですかね?
tokyo cabinetはハッシュ表・Btree・固定長の3種類の構造を選べるDBMのようなライブラリです。
こんな具合に高速らしい。
今回、僕はハッシュ表を使いました。tchですね。tcb、tcf、*の4種類から選べるみたい。
実際早いのはtcf(fixed)らしいけど・・・今回はハッシュで。
tokyo tyrantはmemcachedプロトコルを実装しているので、memcached系のクラスを使うことが出来ます。
<?php
$obj = new Memcache();
$obj->connect('localhost',1978);
echo $obj->get('key');
?>
こんな風に。
とても楽チンなのです。
以下、覚書。
1.tokyo cabinetをインストール
wget http://tokyocabinet.sourceforge.net/tokyocabinet-1.3.15.tar.gz (最新版はここ)
tar -zxvf ./tokyocabinet-1.3.15.tar.gz
cd ./tokyocabinet-1.3.15
./configure #ここで失敗。zlibとbzipがなかった。
yum install zlib-devel bzip2-devel bzip2-libs
./configure && make && make install
2.tokyo tyrantをインストール
wget http://tokyocabinet.sourceforge.net/tyrantpkg/tokyotyrant-1.1.7.tar.gz (最新版はここ)
tar -zxvf ./tokyotyrant-1.1.7.tar.gz
cd ./tokyotyrant-1.1.7
./configure && make && make install
3.ホットスタンバイで動かす
詳しい説明は平林さんがここで書いてます。
ttserver -dmn -log /path/to/tta.log -port 1978 -ulog /path/to/ulog -sid 1 -mhost localhost -mport 1979 -rts /path/to/mastera.rts /path/to/mastera.tch
ttserver -dmn -log /path/to/ttb.log -port 1979 -ulog /path/to/ulog -sid 2 -mhost localhost -mport 1978 -rts /path/to/masterb.rts /path/to/masterb.tch
4.PHPで繋ぐ
<?php
$obj = new Memcache();
if(!$obj->connect('localhost', 1978)) {
if ($obj->connect('localhost', 1979)) {
error('繋がらんよ');
}
}
$obj->set('key', 'データだお');
echo $obj->get('key');
?>
こんな感じだったと思います。
ちなみに、ファイルシステムはext3でnoatimeとwritebackモードに設定。
orderedモードよりwritebackの方が早いらしいのと、それほどクリティカルなサービスではないのでwritebackにしてみました。
そういえば、ハッシュDBで、早そうなのがありました。
memstored
こちらもいつか使ってみたいところです。
引用ページ
mixi->{engineers_blog}様 http://alpha.mixi.co.jp/blog/
古橋定之の日記様 http://d.hatena.ne.jp/viver/
Drk7.jp様 http://www.drk7.jp/MT/
画像RSS
おまとめボタン
カテゴリー
忍者カウンター
忍者ビジター
忍者アド
ブログ内検索
リンクなどなど
最新コメント
プロフィール
アーカイブ
フリーエリア
忍者ツールズプロフィール