Cache Problems

Cheat Sheet

Cache Problems

問題(もんだい)解決(かいけつ) (さく)詳細(しょうさい)
キャッシュ雪崩(なだれ) (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 の監視(かんし)自動(じどう) 回復(かいふく) メカニズムを強化(きょうか) し、キャッシュダウンタイムを削減(さくげん)

関連トピック