2010年 6月 23日 はてなブックマーク -
タグ: #PHP #KVS #memcache

[PHP][memcached] phpセッションmemcached を使う

CentOSの場合

  • install

rpmforgeのレポジトリが入っていない人は以下の手順で追加

# wget http://dag.wieers.com/packages/rpmforge-release/rpmforge-release-0.3.6-1.el5.rf.i386.rpm
# rpm -Uhv rpmforge-release-0.3.6-1.el5.rf.i386.rpm
# yum install libevent memcached php-pecl-memcache
  • 設定

/etc/php.ini を以下のように編集

session.save_handler = memcache
session.save_path = "memcached.example.com:11211"

/etc/sysconfig/memcached を以下のように適当に編集する。

PORT="11211"
USER="nobody"
MAXCONN="1024"
CACHESIZE="64"
OPTIONS=""
  • スタート

memcached デーモンをスタート

# chkconfig memcached on
# service memcached start

Apacheをリスタート

# service httpd restart
  • 各種設定

パケットキャプチャみると、各値の有効期限が、1440秒になっている。設定場所がわからない。

ソースを見てみると、

memcache_session.c:		if (mmc_pool_store(pool, "set", sizeof("set")-1, key_tmp, key_tmp_len, 0, INI_INT("session.gc_maxlifetime"), val, vallen TSRMLS_CC)) {

session.gc_maxlifetime を使っているのが分かる。

これで、有効期限を設定できた。

php のセッションにmemcached を使う - Sleepless geek in Seattle

スタンダードなmemcacheの場合は「session.gc_maxlifetime」を見ている。TokyoTyrant系はどうなっているのか・・・


1年前 | | 2010年 6月 23日 | このエントリーを含むはてなブックマーク