CodeIgniterでmemcachedを使う
CIのバージョンは2.1.0でやった。
CIのMemcached キャッシングドライバは、PECLのmemcachedを使ってる(memcacheではない)ので要注意。
見事に動かなくてハマッたのでメモ。
libmemcachedが必要
yum install gcc-c++
cd /usr/local/src wget https://launchpad.net/libmemcached/1.0/1.0.4/+download/libmemcached-1.0.4.tar.gz tar xf cd libmemcached-1.0.4 ./configure --prefix=/usr/local/libmemcached make make install echo /usr/local/libmemcached/lib/ > /etc/ld.so.conf.d/libmemcached.conf /sbin/ldconfig -v
PECLのmemcachedをいれる
pecl channel-update pecl.php.net pecl download memcached tar xf memcached-1.0.2.tgz cd memcached-1.0.2 phpize ./configure --with-libmemcached-dir=/usr/local/libmemcached/ make make install vi php.ini extension=memcached.so
httpdの再起動を忘れずに。
設定ファイルを準備
vi application/config/memcached.php
<?php // 'memcached'の部分はネームスペースなので、複数の接続先がある場合にはネームスペースを変えて複数用意する。 $config['memcached'] = array( 'hostname' => '127.0.0.1', 'port' => 11211, 'weight' => 1 );
使い方
<?php $this->load->driver('cache', array('adapter' => 'memcached')); $this->cache->memcached->is_supported(); $this->cache->save('hogehoge', $data); $this->cache->get('hogehoge'); $this->cache->clean();
これでオッケー。