【れでぃす】

Redis とは?

最終更新:
💡 メモリ上のデータを、キーと多様な構造で扱う

インメモリ型のキーバリューストア。キャッシュ、セッション管理、メッセージブローカーとして幅広く利用される。

📌 このページのポイント
Redis:キーでメモリ上のデータを操作 アプリ 操作 Redis メモリ上のデータ構造(例) 文字列 bike:1 → 型番A ソート済み集合 利用者とスコア ディスクへの永続化 RDB / AOF(設定による) 応答時間・消失する更新範囲は条件による
メモリ上の操作とディスクへの永続化を分けた概念図
ひよこ ひよこ
Redisって何に使うの?
ペンギン先生 ペンギン先生
データベースから取得した結果のキャッシュ、ログイン状態などのセッション情報、ランキングなどに使えるよ。キーで値を取り出すだけでなく、リストや集合、スコア付きの集合などを用途に合わせて扱えるんだ。
ひよこ ひよこ
メモリ上だと電源を切ったら消える?
ペンギン先生 ペンギン先生
ディスクに保存して再起動時に復元する永続化もできるよ。RDBはある時点のスナップショット、AOFはデータを変更する操作の記録を使う。保存の間隔や書き込み方によって、障害時に失う可能性がある更新の範囲は変わるんだ。
ひよこ ひよこ
じゃあキャッシュにしか使えないわけではないんだね?
ペンギン先生 ペンギン先生
そうだよ。永続化を使うデータストアとしても利用できる。ただし、用途に必要な耐久性やバックアップを設計しよう。キャッシュでも、元のデータとずれた値をいつまで使うか、消えたときにどう再取得するかを決めておく必要があるね。
ひよこ ひよこ
Pub/Subなら通知を必ず受け取れる?
ペンギン先生 ペンギン先生
RedisのPub/Subは、受信側が切断していたり処理に失敗したりするとメッセージを失うことがあるよ。配信はat-most-onceで、再送が保証される仕組みではない。記録や再処理が必要なら、Streamsなど別の仕組みも検討するんだ。
ひよこ ひよこ
本番での注意点は?
ペンギン先生 ペンギン先生
データ量に加え、永続化や処理に必要なメモリも見積もろう。maxmemoryで上限を決め、上限時に書き込みを断るか、設定した方針でキーを削除するかを選ぶ。キャッシュと消してはいけないデータでは条件が違うので、LRUなどを一律に選ばず用途に合わせよう。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「Redis」って出てきたら「メモリ上のデータをキーと多様な構造で扱うデータストア」と思えばだいたいOK!
📖 おまけ:英語の意味
「Redis(Remote Dictionary Server)」 = リモート辞書サーバー
💬 Remote(リモート)のDictionary(辞書)Server(サーバー)。キーで値を引く辞書のイメージだよ

参考資料

← 用語集にもどる