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);

 

のようなデータを保存するには向いている。

 

コメントを残す

CAPTCHA