前回は、Predis の概要とインストール方法について解説しました。 本稿では、引き続き Predis の基本操作について解説します。
Redisサーバーへの接続
Predis は Redis クライアントなので、何はともあれ、Redis サーバーへ接続しないと始まりません。 まずは Redis サーバーへの接続について解説します。
Predis における Redis サーバーへの接続は、Predisクライアントのインスタンス化と共に接続先を指定して行います。 ただし、接続先ホストが localhost で、接続先ポート番号がデフォルトの6379であれば、次の例のように何も指定せずに Predis クライアントをインスタンス化すれば接続できます。
$client = new Predis\Client();
もし、ホストが別だったりポート番号が異なる場合は、次のように引数に文字列を指定するか、もしくは連想配列で指定します。
$client = new Predis\Client('tcp://192.168.10.33:6379');
$client = new Predis\Client([
'scheme' => 'tcp',
'host' => '192.168.10.33',
'port' => 6379,
]);
Redisサーバーへの接続ができたら、あとはインスタンス化したオブジェクト(上の例では $client)を利用して Redis サーバーを操作します。
文字列型データの操作
まずは基本である文字列型データの操作について見ていきます。 ここで利用するメソッドは次のようなものです。
メソッド | 説明 |
---|---|
delete() | 指定したキーの値を削除します。 |
get() | 指定したキーの値を取得します。 |
set() | 指定したキーで文字列値を保存します。 |
これらのメソッドを利用したサンプルプログラムは、次のようになります。
// Redisに接続すると共にクライアントをインスタンス化
$client = new Predis\Client();
// キー 'hoge' で値 'moge' を保存
$client->set('hoge', 'moge');
// キー 'hoge' の値を取得
$hoge = $client->get('hoge');
// キー 'hoge' を削除
$client->del('hoge');
リスト型データの操作
リスト型データの操作で利用するメソッドの主なものは次の通りです。
メソッド | 説明 |
---|---|
rpop() | 指定したキーのリストの末尾から値を取り出します。 |
lpop() | 指定したキーのリストの先頭から値を取り出します。 |
rpush() | 指定したキーのリストの末尾に値を追加します。 |
lpush() | 指定したキーのリストの先頭に値を追加します。 |
これらを利用したサンプルプログラムは次の通りです。
$client = new Predis\Client();
$client->rpush("name", "Tom");
$client->rpush("name", "Alex");
$client->lpush("name", "Taro");
$name = $client->lpop("name"); // "Taro"が返却される
$name = $client->rpop("name"); // "Alex"が返却される
$client->del("name");
ハッシュ型データの操作
次にハッシュ型データの操作についてみていきます、主に利用するのは次のメソッドです。
関数 | 説明 |
---|---|
hdel() | ハッシュから値を削除します。 |
hget() | ハッシュから値を取得します。 |
hgetall() | ハッシュを取得します。 |
hset() | ハッシュに値を追加します。 |
これらを利用したサンプルプログラムは次の通りです。
$client = new Predis\Client();
// ハッシュを追加します
$client->hset('man1', 'name', 'Taro');
$client->hset('man1', 'country', 'Japan');
// 追加したハッシュを取得して表示します
$name = $client->hget('man1', 'name'); // "Taro" が返却される
$country = $client->hget('man1', 'country'); // "Japan" が返却される
// ハッシュを取得します
$man1 = $client->hgetall('man1');
print($man1['name']); // "Taro" が表示される
// ハッシュの特定のキーを削除します
$client->hdel('man1', 'country');
// ハッシュを削除します
$client->del('man1');
セット型データの操作
最後にセット型データの操作方法をみていきます、主に利用するメソッドは次の通りです。
関数 | 説明 |
---|---|
sadd() | セットに値を追加します。 |
smembers() | セットを取得します。 |
srem() | セットから値を削除します。 |
これらを利用したサンプルプログラムは次の通りです。
$client = new Predis\Client();
// セットを追加します
// 'name' というキーで、'Tom' と 'Mike' の値を追加します
$client->sadd('name', 'Tom', 'Mike');
// セットに更に値を追加します
// セット型のため、Alex だけが追加されます
$client->sadd('name', 'Alex', 'Tom');
// セットから値を削除します
$client->srem('name', 'Tom');
// セットを取得します (配列で返却されます)
$name = $client->smembers('name');
print_r($name);
# セットを削除します
$client->del('name');
おわりに
本稿ではRedisクライアント「Predis」の基本操作について解説しました。 Predis を活用するきっかけになれば幸いです。