【れでぃす】

Redis とは?

💡 メモリ上で動く「超高速」データストア
📌 このページのポイント
Redisのインメモリデータ構造 クライアント Redis(メモリ上) Key: "user:1" Value: "{name:太郎}" Key: "queue" List: [A, B, C] Key: "config" Hash: {a:1, b:2} Key: "ranking" SortedSet: {X:10} ディスク RDB / AOF 永続化 超高速 マイクロ秒 レスポンス
Redisのイメージ
ひよこ ひよこ

Redisって何に使うの?

ペンギン先生 ペンギン先生

最も多い用途は①キャッシュ(DBクエリの結果を一時保存して高速化)、②セッション管理(ログイン状態の保持)、③リアルタイムランキング(ソート済みセットで高速にランキング計算)、④レート制限(API呼び出し回数の制御)、⑤Pub/Sub(リアルタイム通知)。ほぼ全てのWebサービスの裏側にRedisがいるよ

ひよこ ひよこ

メモリ上だと電源切ったら消える?

ペンギン先生 ペンギン先生

デフォルトではRDB(定期スナップショット)とAOF(全操作ログ)で永続化できるよ。ただしRedisを永続的なデータベースとして使うのは推奨されない。キャッシュなら消えてもDBから再取得すればいいし、セッションなら再ログインすればいい。「消えても復旧できる」データを入れるのが基本だね

ひよこ ひよこ

Memcachedとの違いは?

ペンギン先生 ペンギン先生

Memcachedは単純なキーバリューのキャッシュに特化。Redisはデータ構造が豊富(リスト、セット、ソート済みセット等)で、Pub/SubLuaスクリプト、永続化もサポート。機能性ではRedisが圧倒的に上で、現在はRedisを選ぶケースが大多数だよ

ひよこ ひよこ

本番での注意点は?

ペンギン先生 ペンギン先生

①メモリ使用量の監視(OOMでプロセスkillされることがある)、②maxmemory-policyの設定(メモリ上限時の挙動を決める。LRU推奨)、③Redis Sentinel/Clusterで高可用性を確保、④SlowLogで遅いコマンドを検出。AWSならElastiCache、GCPならMemorystoreのマネージドサービスが運用負荷を下げるよ

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「Redis」って出てきたら「メモリ上で動く超高速なデータストア」と思えればだいたいOK!
📖 おまけ:英語の意味
「Redis(Remote Dictionary Server)」 = リモート辞書サーバー
💬 Remote(リモート)のDictionary(辞書)Server(サーバー)。キーで値を引く辞書のイメージだよ
← 用語集にもどる