キャッシュ浸透
コンセプト
キャッシュペネトレーションとは、データベースに存在してはならないデータのクエリを指します。キャッシュプロセスの通常の使用法は、データクエリが最初にキャッシュクエリを実行することです。キーが存在しないか、キーの有効期限が切れている場合、データベースがクエリされ、クエリされたオブジェクトがキャッシュに配置されます。データベースクエリオブジェクトが空の場合、それはキャッシュに入れられません
治療計画
オプション1。
クエリが空の場合は、redisの値が空になるまでこのキーを入力し、ビジネスに応じて有効期限を5分以内に設定します
データベースに存在しない多数のキーを要求したり、redisを直接爆発させるなど、この種の問題が攻撃される可能性があります。これは、有効期限をできるだけ短く設定するのに適していますが、大量のデータを同時に回避するルールはありません
。解決策2
ブルームフィルターを使用する
キャッシュの内訳
コンセプト
キャッシュの内訳は、非常に高温で常に大きな同時実行性を保持しているキーを指します。大きな同時実行性は、このポイントへのアクセスに重点を置いています。キーが現時点で失敗すると、継続的な大きな同時実行性がキャッシュを突破し、データベースに直接要求します、障壁に切り込まれた穴のように。
治療計画
有効期限なしに設定
アクセス時にメモリを占有しないようにするために、ホットスポットデータのIDを保存してバッチで削除できます
キャッシュなだれ
コンセプト
キャッシュ雪崩とは、キャッシュセットが期限切れになり、一定期間内に期限切れになることを意味します。
治療計画
一般に、さまざまなカテゴリの製品が取得され、さまざまな期間キャッシュされます。同じカテゴリの商品にランダムな要素を加えたもの。このようにして、キャッシュの有効期限を可能な限り分散することができ、人気のあるカテゴリの製品のキャッシュ時間は長くなり、人気のあるカテゴリの製品のキャッシュ時間は短くなり、キャッシュサービスのリソースも節約できます。
参考資料
https://baijiahao.baidu.com/s?id=1619572269435584821&wfr=spider&for=pc
https://developpaper.com/cache-penetration-cache-breakdown-cache-avalanche-solution-analysis/