Redis をいつ使うべきか(と、使うべきでないとき)¶
問題提起¶
バックエンドエンジニアは最近、Redis をすべてのアーキテクチャに入れる。しかし一部のアプリケーションは Redis を全く必要としない。Redis が本当に必要な実践的シナリオとは?
Redis が有効なユースケース¶
| ユースケース | 理由 |
|---|---|
| セッション管理 | 高速な KV・TTL 設定・水平スケール対応 |
| レートリミット | 原子的なカウンタ操作(INCR + EXPIRE) |
| キャッシュ(DB クエリ結果) | DB 負荷削減・レスポンス高速化 |
| リアルタイム通知・Pub/Sub | 軽量なメッセージブローカーとして |
| 分散ロック | SET NX PX による排他制御 |
| リーダーボード | Sorted Set で O(log N) のランキング |
| ジオサーチ | GEO コマンドで近隣検索 |
Redis が不要なケース¶
- トラフィックが少なく DB が十分速い場合
- データの永続性・整合性が最重要でキャッシュのズレが許容できない場合
- 運用コストを増やしたくない小規模プロジェクト
ポイント¶
- 「とりあえず Redis」は運用コスト・データ整合性の複雑さを増やす
- まず DB のインデックス最適化・クエリ改善を先にやる
- Redis を追加する判断は「何を解決したいか」が明確になってから