一応公開します....tokyotyrant.pm。ライセンスはGPL2。
インストールはCPANあたりでCGI::Sessionをinstallした後で、 /usr/local/share/perl/5.10.0/CGI/Session/Driver(ディストリによって微妙に異なる)にtokyotyrant.pmという名前でコピーするだけです。
セッションの書き込み先としてttserverが必要です。
# ttserver -port 1980 /tmp/test.tch &
とかやって起動しておいて、Perlスクリプト側では、
my $ses = new CGI::Session("driver:tokyotyrant", $sid, {Host=>'localhost', Port=>1980});
とやれば、普通のCGI::Sessionと同じように使えるはずです。 あんまりデバッグしてませんが(汗;
セッション管理は、Webサービスを作るのに欠かせないもので、大半のフレームワークには内蔵されているものです。しかし独立性が高いもの(泥臭くてもすぐ組み込めるもの)というと、あまり選択肢がないように思います。
その中でPerlのCGI::Sessionは「泥臭い」部類のセッション管理モジュールで、使ってる人が少ないのか、対応ドライバは、file(名の通りローカルファイル)、バークレイDB(これもファイル)、SQLite3(これもファイル)、MySQL、PostgreSQL、で、今日のAppサーバが何台もあるorログインサーバとWebサーバを分けたい、なんて用途にはMySQLとPostgreSQLしか選択肢がなかったのです。
TokyoTyrantは、パーマネントかつ超高速が信条のデータベースサーバで、tch拡張子のハッシュDBファイルに書き込むのが普通ですが、不揮発でもよければADB(memcachedみたいなメモリDB)が選べるのも魅力ですわな。
まあmixiクラスの大規模サービスでない限り不要 かもしれませんが、とりえあずKVSにセッション保存することは簡単にできますよ〜という話。
素敵なモジュールですね。
どちらかというとkyototycoon向きかもしれませんが(expireもあるし)
今はTTのほうがすぐに作れていいですね。
いやどうも。お察しの通り数日の運用で4万件とか溜まりましたので
ttp://linux.papa.to/image/ttexpire.txt
とかやってCGI.pmのセッション情報から最終更新日を取り出して
消すスクリプトを定期的に動かすようにしました。
非効率ですな('A`)