Redisに配列を保存する for PHP
Redisに配列を保存するには、いくつかの方法があります。 しかし、普通にsetしたのでは、配列は保存できないでしょう。 そのため、配列を保存するためのいくつかの方法を紹介します。 以降の記述では、
$host = '127.0.0.1';
$port = 6379;
$r = new Redis();
$r->connect($host, $port);
を省略し、$rでredisに接続できるものとします。
別の形式に書き換えて登録する
JSONに書き換える
$r->set('key' , json_encode($array));
json_decode($r->get('key'));
シリアライズ化する
$r->set('key' , serialize($array));
unserialize($r->get('key'));
hSet(hMSet)を利用する Redisで用意された型の一つ、ハッシュ型は配列を登録することができる。 hSet(‘取得に使用するキー名’ , ‘登録Key’ , ‘登録Value’ ); または、 hMSet(‘取得に使用するキー名’ , array( ‘登録Key’ => ‘登録Value’)); keyとvalueをセットで配列に保存できる唯一の型だが、多次元の配列は保存することはできない。 Redisはシンプルなデータのやり取りは高速だが、複雑なデータのやり取りには向いていないため、おすすめはしないが、どうしても保存したい場合には、別の形式に置き換え登録をする。 また、取得する場合には、 hvals 登録された値の一覧を取得する hkeys 登録されたキーの一覧を取得する hgetall 登録された値とキーのセットを一覧で取得する 使用例
$user_info = array('id' => 1,
'name' => 'took',
'age' => 22
);
$r->hMSet('user01' , $user_info);
のようなデータを保存するには向いている。