Cache Problems
Cheat Sheet

| 問題 | 解決 策 | 詳細 |
|---|---|---|
| キャッシュ雪崩 (Avalanche) | 1. キャッシュ有効
期限
のランダム化 2. 分散 レート制限 3. キャッシュウォームアップ 4. 縮退 戦略 | - キャッシュ有効
期限
をランダム範囲
で設定
し、同時
失効
を防止 - Nginx や API Gateway でレート制限 を設定 し、瞬間的 なリクエスト殺到 を防止 - 高頻度 データを事前 ロードし、突発 トラフィックを回避 - システム負荷 が高 い場合 、部分的 なデータまたは静的 ページに縮退 |
| キャッシュ貫通 (Penetration) | 1. 空
結果
のキャッシュ 2. ブルームフィルター 3. パラメータ検証 | - 存在
しないデータ(空
結果
)もキャッシュし、短期
の有効
期限
を設定
して複数回
クエリを防止 - ブルームフィルターで存在 しない key をフィルタリング - 入力 パラメータを検証 し、無効 なリクエストがバックエンドに到達 するのを防止 |
| キャッシュ穿孔 (Hotspot Invalid) | 1. ミューテックスロック 2. 二重 キャッシュ戦略 | - 分散
ロックを使用
し、同時
に 1 つのリクエストのみがバックエンドをクエリできるようにする - メインキャッシュとバックアップキャッシュを設定 し、ホットスポットデータ失効後 にすべてのリクエストが同時 にバックエンドに到達 するのを防止 |
| キャッシュ汚染 (Pollution) | 1. データ検証 2. 簡易 検証 | - データ有効性
検証
を実施
し、キャッシュに書
き込
む前
にデータが正
しく有効
であることを確認 - 高頻度 データには簡易 検証 戦略 を検討 し、無効 なデータによるキャッシュ汚染 を防止 |
| キャッシュ一貫性 (Consistency) | 1. 削除
後
書
き込
み 2. 失敗 リトライメカニズム 3. メッセージキュー同期 | - データ更新
時
、まずキャッシュを削除
してからデータベースを更新
し、期限切
れのキャッシュデータの読
み取
りを防止 - 書 き込 み失敗時 は、リトライメカニズムまたはメッセージキューを設定 してキャッシュとデータベースの一貫性 を確保 |
| キャッシュ障害 (Breakdown) | 1. 縮退
メカニズム 2. 多層 キャッシュ 3. 高速 回復 メカニズム | - 縮退
メカニズムを設定
し、キャッシュ障害時
に非
重要
データはデータベースをクエリしない - 多層 キャッシュ(ローカルキャッシュ + Redis など)を使用 し、単一障害点 の影響 を軽減 - Redis の監視 と自動 回復 メカニズムを強化 し、キャッシュダウンタイムを削減 |