memcacheを使ってみた!
memcacheサーバを入れるのは超簡単!
PHPのmemcachクライアントをインストールするのも簡単なんだけど、
何故かFreeBSDではPerlのmemcacheクライアントのインストールでこける。
cpan install Cache::Memcache
だと上手くいかなくて色々やってたら
cpan install Cache::Memcache::Fast
だと簡単に入った!!やったねv
で、早速プログラムから使ってみようと思って
以下のような実験をやってみた。
① perlから存在期限付きで値をセット
② PHPから値の有無を判断
まぁ要するに「最終ログイン5分以内」を2言語間でやってみたかっただけね。
以下、超簡単なサンプルです。
Perl側・状態設定
memset.pl
use strict; use warnings; use Cache::Memcached::Fast; my $fast = Cache::Memcached::Fast->new( +{ servers => ['127.0.0.1:11211'] } ); $fast->set('status','in',5); #ちなみに値の取得はこうする # my $str = $fast->get('status');
PHP側・状態呼び出し
memget.php
<?php $memcache = new Memcache; $memcache->connect('127.0.0.1', 11211) or die ("Could not connect"); $s = $memcache->get("status"); if($s){ print "Active"; }else{ print "Lost"; } #ちなみに値の設定はこうする # my $str = $fast->set('status','in',5); ?>
これで、Perlのプログラムを実行してから5秒間は
PHPの方でArriveと表示され、
5秒以上経つとLostに切り替わる、
なんて動作をします。
ちなみにtelnetでプロトコル叩いて直に取得してみたら平文で入ってた。
シンプルで本当に素敵だ。