(2008.06.18 追記)タイトルのスペルが間違っていたので訂正しました。パーマリンク名も間違ってる。。けどこれは仕方なくこのままにしておきます。orz
最近memcachedを使うことがあったので、使えるようになるまでの個人的メモです。基本的にyum, peclコマンドだけでインストールは可能です。対象OSはFedora8です。
sudo yum -y install memcached sudo yum -y install php-devel #phpizeコマンドを利用するために必要 sudo yum -y install php-pecl\* sudo yum -y install zlib sudo pecl install memcahce
こんな感じでインストールはOKです。あとはmemcache.soをロードするように設定します。php.iniを直接編集してもいいのですが、extension系は/etc/php.d/に別途iniファイルを用意しておいた方が管理しやすいかもです。
sudo vi /etc/php.d/memcache.ini
で、
extension=memcache.so
の1行だけ書いたファイルを作成して、保存。
sudo /sbin/chkconfig memcached on
で、デーモンとして登録しておくと便利です。
ラッパクラス
peclの関数をそのまま利用してもいいのでしすが、ラッパ関数を作成してもいいかもです。僕はこんな感じのものを作成しました。MEMCACHED_SERVER_ADDR. MEMCACHED_SERVER_PORTは適当な値に置き換えてください。多分localhost, 11211番ポートになるはず。
<?php
class MemcacheManager {
private static $cache = null;
private function __construct(){}
static function getInstance(){
if(MemcacheManager::$cache == null){
MemcacheManager::$cache = new Memcache;
MemcacheManager::$cache -> connect(MEMCACHED_SERVER_ADDR, MEMCACHED_SERVER_PORT);
}
return MemcacheManager::$cache;
}
function get($key){
return MemcacheManager::$cache -> get($key);
}
function set($key, $var, $flag = null, $expire = CAKE_SESSION_TIMEOUT){
return MemcacheManager::$cache -> set($key, $var, $flag, $expire);
}
function close(){
return MemcacheManager::$cache -> close();
}
}
?>
そうした後で、こんな感じで使います。
$cache = MemcacheManager::getInstance();
$cache -> set('name', 'jkondo');
echo $cache -> get('name'); // 'jkondo'
このMemcacheManagerみたいなクラスを用意しておくと、memcachedが公式にはサポートされていないCakePHP1.1なんかでもvendorsディレクトリあたりに入れておくと、そのまま使えてしまうので結構便利。ご参考ください。(1.2になるとCacheクラスに統合されているようですね)
- Newer: CakePHPを1.1から1.2へ上げるときの注意点
- Older: そろそろShibuya.asについて語っておこうか
Google Adsense
Social bookmark comment : 0
No comment.
Comment : 0
Trackback : 0
- TrackBack URL for this entry
- http://blog.katsuma.tv/mt-tb.cgi/153
- Listed below are links to weblogs that reference
- PHPでmemcachedを利用する from blog.katsuma.tv
2008/06/17 (Tue)