PHPでmemcachedを利用する

  • 2008年6月17日 01:43
  • php

(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クラスに統合されているようですね)

関連広告

Trackbacks: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

Home > php > PHPでmemcachedを利用する

Search
Feeds

Return to page top