今更TokyoCabinetもないやろうと思って、KyotoCabinetか?と思ったけど、今更それもないやろう
ということで、リサーチしてみるとcassandraというのが凄いらしいので、試しにそれを入れてみよう
HDD50GBしかないけど大丈夫だろうか。メモリも1GBだし。
だめならサーバー初期化すればいいし
上記を参考にcassandraインストールできた。次は、perlとのインタフェースを入れる。
まずはcpanからいれないといけない。
と思ったけど、cassandraはやめてKyotoCabinet入れてみた( ゚Д゚)ひよった。
ここを参考にインストール。途中でmakeでerrorになり止まる。
Linux/KyotoTycoonインストール - 初心者エンジニアの簡易メモ
ここを参考にソースを修正してmake通った。
CentOS 7 に Kyoto Tycoon を入れて遊ぶ。 - Qiita
/usr/local/bin/ktremotemgr set k1 v1 /usr/local/bin/ktremotemgr get k1 >v1
動いた。
次はperlからのインタフェースに移る。
ここを参考にCache::KyotoTycoonをcpanからinstallした。
途中足りないモジュールがあって指摘されたが、順次installして完了
Masanoriのプログラミング日誌++: Kyoto Tycoonの導入とperlからのアクセス (on Fedora 17 and Ubuntu)
上記のコードで時限機能があって凄い便利。TokyoCabineは無かったので、時間を埋め込んで手動でやっていた。
ただしコード上のsleep(2500)は間違いで、この関数は引数は秒なので、sleep(2.5)としないといつまでたっても終わらない。
use Cache::KyotoTycoon; my $kt = Cache::KyotoTycoon->new( host => '127.0.0.1', port => 1978, ); $kt->set('foo', 'bar'); print $kt->get('foo') ."\n"; $kt->set('foo2', 'bar', 2); # 2sec print $kt->get('foo2') . "\n"; # OK sleep(3); print $kt->get('foo2')."\n"; exit;
CGIとしては次のような感じでブラウザ上からは動いた。
#!/usr/bin/perl use Cache::KyotoTycoon; use CGI; our $cgi = CGI->new; print CGI::header(-charset=>"utf-8"); our $key = $cgi->param('k'); our $value = $cgi->param('v'); our $act = $cgi->param('a'); our $kt = Cache::KyotoTycoon->new( host => 'localhost', port => 1978 ); if($act eq "set") { $kt->set( $key , $value ); } if($act eq "get") { $value = $kt->get( $key ); print $key."<>".$value."\n"; } $kt->close(); exit;
tokyoCabinetではputだったのがsetになっている。紛らわしい。
次はUnityのアプリからアクセスしてみる。