PHPでRedisを試す

危険なほどのスピードを持つというKVS『Redis』。
redisドキュメント日本語訳を見て頂くと、Redisの持っている機能の概要が書いてあります。

インストール

自分の環境(CentOS 6.2)では、yumでインストールが可能でした。

# yum install redis
# cp /etc/redis.conf /etc/redis.conf.bak

ソースからインストールする場合の手順と起動方法について、以下のページに記載があります。
http://redis.io/download

$ wget http://redis.googlecode.com/files/redis-2.4.15.tar.gz
$ tar xzf redis-2.4.15.tar.gz
$ cd redis-2.4.15
$ make

設定ファイル

yumでインストールを行った場合、設定ファイルは『/etc』配下に設置されます。

# cp /etc/redis.conf /etc/redis.conf.bak

起動

redisを起動します。
(デフォルトでは『127.0.0.1:6379』がオープン)

# /etc/rc.d/init.d/redis start
# chkconfig redis on

次に、インストール手順に従い接続テストを行い、setとgetが問題なく動作する事を確認します。

$ redis-cli
redis 127.0.0.1:6379> set foo bar
OK
redis 127.0.0.1:6379> get foo
"bar"
redis 127.0.0.1:6379> exit

これで、redisを試す環境が出来ました。

PHPからの接続

http://redis.io/clientsを見ると、様々な言語のクライアントリストが表示されます。
今回は『Predis』で、簡単な接続のみ試しました。

$ wget -O predis.zip https://github.com/nrk/predis/zipball/v0.7
$ unzip predis.zip

PHP側では、伸張したディレクトリ内に存在する『autoload.php』をrequireします。
下記が、getとsetのサンプルです。

<?php

require 'nrk-predis-4bc6f58/autoload.php';

Predis\Autoloader::register();

// 接続
$redis = new Predis\Client('tcp://127.0.0.1:6379');

// 値をセット
$redis->set('foo', 'bar');

// 値を取得
echo $redis->get('foo');

コマンドリファレンスを参考に、後は以下の形式で実行するだけです。

$redis->{コマンド}(パラメータ...);

例)
$redis->hset('myhash', 'name', 'myname');
$redis->hget('myhash', 'name');