LoginSignup
0
0

More than 1 year has passed since last update.

Laravelを利用したアプリケーションでRedisに配列を保存したい

Last updated at Posted at 2023-02-23

はじめに

携わっている案件でRedisを触る機会がありました。
実装の中でRedisに配列形式の値を保存する方法を調べたのでこちらに記録しておきます。

やりたい事

今回のユースケースは、アプリケーションのユーザー情報をRedis上にキャッシュしたいというものでした。話を簡単に進める為、以下のような情報を配列形式で保存したいとします。

// 親keyはアプリケーション生成のトークン
// それに紐づくvalueはユーザー情報の配列
[
    'ランダムなtoken' => [
        'id' => 1,
        'name' => 'aaaa',
    ]
]

実現方法

今回の場合、RedisのHash型を利用して保存していきます。
LaravelのRedisファサードを利用して以下のように保存処理を実行します。

public function save($id, $name, $token): bool
{
    Redis::pipeline(function ($pipe) use ($id, $name, $token) {
        $pipe->hset($token, 'id', $id);
        $pipe->hset($token, 'name', $name);
        $pipe->expire($token, 4000); // 有効期限を設定
    });
}

hsetメソッドを利用する事で同じkeyに対してHash型の値を保存する事ができます。
また、pipelineメソッドを利用する事で毎コマンドごとにRedisサーバへネットワークトリップする代わりに、すべてのコマンドを一度にRedisサーバへ送信させるよう実装しています。

※詳しくはこちらを参照
https://readouble.com/laravel/8.x/ja/redis.html

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0