以前から気になりつつも、ちょっと今更になってしまったのですが・・・
開発中のWebアプリケーションで使いたい!という動機です(笑)
Fedora 17 および Ubuntu 12.04で以下の手順による動作を確認できました。
まず、必要なパッケージをインストールします。
$ sudo yum install libcurl gcc make zlib-devel尚...Ubuntuなど(Debian系)では次のような感じです:
$ sudo apt-get install curl gcc make zlib1g-dev libbz2-dev build-essential
次に、Kyoto Cabinetをインストールします。
$ wget http://fallabs.com/kyotocabinet/pkg/kyotocabinet-1.2.76.tar.gz $ tar zxf kyotocabinet-1.2.76.tar.gz $ cd kyotocabinet-1.2.76/ $ ./configure $ make $ sudo make install $ ../その次に、Kyoto Tycoonをインストールします。
(Kyoto Tycoonは、Kyoto Cabinetをネットワークで扱うためのインターフェイスです。)
$ wget http://fallabs.com/kyototycoon/pkg/kyototycoon-0.9.56.tar.gz $ tar zxf kyototycoon-0.9.56.tar.gz $ cd kyototycoon-0.9.56/ $ ./configure $ make $ sudo make installさらに、管理用のコマンドを使えるようにスクリプトをコピーしておきます。
$ sudo cp lab/ktservctl /usr/local/sbin/ $ sudo cp lab/ktservctl /etc/rc.d/init.d/ktserver(【Ubuntuの場合】 /etc/rc.d/init.d/ → /etc/init.d/ ですので、注意。以下も同様に読み替えてください。)
またこのスクリプトを一部編集しておきます。
$ sudo vi /etc/rc.d/init.d/ktserver #! /bin/sh #---------------------------------------------------------------- # Startup script for the server of Kyoto Tycoon # chkconfig: - 80 20 #---------------------------------------------------------------- 〜〜〜 PATH="$PATH:/sbin:/usr/sbin:/usr/local/sbin:/usr/local/bin" 〜〜〜(2行目付近に、このように、chkcondigのための行を追加。 また31行目付近のPATHに、/usr/local/bin を追加しておきます。) [2013/02/10:追記]
共有ライブラリパスに/usr/local/libを含めていなければ、追加しておきます。
$ vi /etc/ld.so.conf 〜〜〜 /usr/local/lib
$ sudo ldconfigこれで完了です。
では...早速、Kyoto Tycoonを起動してみます。
$ sudo service ktserver startまたは
$ sudo ktserver
これで...コンソール上にログが表示されたら、稼働中です。
とりあえず試しに、perlでスクリプトを書いて読み書きしてみることに。
ありがたいことに、Cache::KyotoTycoonというモジュールがあるので、とても簡単に扱うことができます。
まずは、cpan/cpanmで、Cache::KyotoTycoonをインストールします。
$ cpanm Cache::KyotoTycoonあとは、スクリプトを書いて...実行。
use Cache::KyotoTycoon; # KyotoTycoonに接続 my $kt = Cache::KyotoTycoon->new( host => '127.0.0.1', port => 1978, ); # キー'foo'で 文字列'bar'を保存 $kt->set('foo', 'bar'); # 読み出してみる print $kt->get('foo') ."\n"; # 時限削除機能もあるので試してみる $kt->set('foo2', 'bar', 2); # 2sec # 読みだしてみる print $kt->get('foo2') . "\n"; # OK # 2秒〜ほど待つ sleep(2500); # もう一度、読みだしてみる print $kt->get('foo2') . "\n"; # 時限削除されているので空になる。
まさに...キャッシュのためにももってこいなKVSだといえます。
ベンチマークの類はまだしてないですが。メモリにも優しいそうです。
また、memcached互換なので既存のモジュールも応用できるそうです。
[2013/03/19 追記]
Cache::KyotoTycoon v0.14で行われた修正にともない、
コンストラクタ(Cache::KyotoTycoon->new)内でdbパラメータを与えると
リクエストがエラーとなってしまうようです。
[2013/05/29 追記]
パッケージ類のインストール手順を追加しました。
また、Ubuntu 12.04でもこの手順で動作を確認しているため、追記 および タイトルを変更しました。
参考にさせていただいたページ (感謝 m(_ _)m♪):
0 件のコメント:
コメントを投稿
お気軽にコメントをお寄せください m(_ _)m♪
"コメントの記入者"欄から[名前/URL]を選ぶと、登録なしでコメント投稿していただけます。