以前「CentOSでRedisサーバを使う」で Redis サーバとクライアントの設定をまとめましたが、実際に php のアプリケーションから利用する方法も書いておきたいと思います。

CentOSでRedisサーバを使う冗長化した Web サーバなどで、セッションの管理や、セッションや特定のユーザーに紐付く一時データを管理するのに memcache を使...
phpredisの設定
Redis のサービスが無事に起動できたら、PHP で Redis が使用できるように extension の設定をします。
php.ini で Linux の場合は php_redis.so、Windows の場合は php_redis.dll を読み込むようにします。
1 2 3 4 | [Linux] extension=redis.so [Windows] extension=php_redis.dll |
Redis用のクラスを作成する
Redis サーバへの接続や、サーバからの値の取得や設定などがしやすいように、ラッパークラスを作ってしまうのが楽です。
まずは、コンストラクタで Redis サーバへの接続をしておきます。
他に、特定のキーで値をセットするメソッドと、特定のキーに対応する値を取得するメソッドを作成しておきます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | <?php class RedisService { private $redis; /** * コンストラクタ */ public function __construct() { $hostname = '192.168.1.100'; $port = 6379; $this->redis = new Redis(); if (!$this->redis->connect($hostname, $port)) { throw new Exception('fail connect redis server.'); } } /** * デストラクタ */ public function __destruct() { $redis->close(); } public function setValue($key, $value) { $redis->set($key, $value); } public function getValue($key) { return $redis->get($key); } } |
Redis用のクラスを利用する
上記クラスを呼び出す側は、インスタンスを作成して必要なメソッドを呼び出すだけです。
この他にも、特定のキーに対して値の受け渡しをするメソッドなど、利用シーンに応じて便利なメソッドを作っておくといいと思います。
1 2 3 | $redis = new RedisService(); $redis->setValue('foo', 'bar'); $value = $redis->getValue('foo'); |