MemcachedのインストールとPHPからのアクセス
負荷分散システムでのデータキャッシュ化のため、memcachedを導入しました。
TCP/IP通信でリモートサーバのメモリにデータを保存することが出来ます。
技術的なことは他のサイトに譲るとして、導入方法です。
memcachedは元々DBのクエリキャッシュのために作られたようですが、
大抵のデータは格納できます。
Ubuntuからのインストールは非常に簡単で、synapticでmemcachedをインストールするだけです。
起動コマンドも簡単です。
memcached -p ポート番号 -m 最大メモリ -d
最大メモリが64MBであるなら、パラメータには64mと指定します。
これだけで、メモリキャッシュサーバの導入は終わり。
フロントエンドの例として、PHPで使用してみます。
PECLライブラリのインストールが必要ですが、これもsynapticからphp5-memcacheをインストールするだけです。
と思ったのですが、memcacheライブラリがロードされない・・・
/etc/php5/cli/conf.d/memcache.iniファイルの2行目で、memcache.soのロードがコメントアウトされていました。
viなどで、コメントアウトを取れば完成です。
簡単な動作例
$key = "test";
$m = new Memcache();
$m->connect("localhost", 10000); // localhostの10000番でmemcachedを起動したと仮定
$v = $m->get($key);
if($v === false) {
$v = "memcached at ".date('Y/m/d H:i:s');
$m->set($key, $v, 0, 30); // 30秒間キャッシュ
}
echo $v, "\n";
キャッシュの有効期限をなくすには、setメソッドの第4引数を0にします。
memcacheはセッションハンドラにも使えるので、便利です。