2010年12月24日金曜日

phpでmemcachedを使う

環境はCentOS5.5です。

インストール
$ sudo yum -y install emcached
$ sudo pecl install memcache
Build process completed successfully
Installing '/usr/lib64/php/modules/memcache.so'
install ok: channel://pecl.php.net/memcache-2.2.6
configuration option "php_ini" is not set to php.ini location
You should add "extension=memcache.so" to php.ini


iniファイル作成
$ sudo vim /etc/php.d/memcache.ini
extension=memcache.so


立ち上げる
$ memcached -d -m 64 -p 11211

これで立ち上げます。

オプションの意味はこんな感じです。
-d :  デーモンモード
-m 64 : 64MBのメモリをストレージとして使用する
-p 11211 : 11211番ポートで待ち受ける


もしローカル環境からのアクセスのみ許可する場合はこう。
$ memcached -d -m 64 -p 11211 -l 127.0.0.1


とりあえず使ってみる。

<?php
$memcache = new Memcache;
$memcache->connect('localhost', 11211) or die ("Can't connect");

// 'key' = "1" で保存。圧縮はなし。期限は30秒。
$memcache->set('key', "hogehoge", false, 30);
print($memcache->get('key'));  //  hogehoge
?>


ついでに、サービス起動されるように設定します。
$ sudo chkconfig memcached on

これで再起動してもmemcacheが自動的に起動されます。


参考
memcachedをインストールしphpから使用する - 適当な日々