Redisのキャッシュ浸透破壊キャッシュ、キャッシュはホットキーをアバランシェ

REVIEW

使用RedisのRedisのキャッシュは必然的に浸透破壊キャッシュ、キャッシュ雪崩、ホットキーの問題が発生します。

まず、ロジックのRedisのはこれです使用します

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

キャッシュの浸透

データベースとキャッシュ内のデータではないことがあります。シーン:クライアントがクエリを開始すると、キャッシュライブラリをチェックする必要はありません、ライブラリは、それがクライアントにエラーメッセージを返しますされません。これは、完璧であることを論理的なようで、全く問題ありませんが、関係なく、私たちはハッカーをキャッチすることができるその要求を、受け入れる必要が捜査を超えるキーの種類、多数の要求を立ち上げていないここに抜け穴があり、そして、キーは、ライブラリが対応する値、違法なキーと呼ばれる、このようなキーを見つけることができない、私たちのシステムではありません。瞬間的には非常に多くの接続を受けたときに、このような多数の要求がDB、Redisのにヒットしません来ていないし、その後、DBにヒットするときに、DBはほとんどハングアップする可能性があります。これは隠された欠陥、ハッカーや悪意のある攻撃者の存在が、この攻撃にあなたのシステムをつかむし、システムをダウンになりますです。

実際の開発では、システムレベルでのフィルタリングの層を追加することができ、これを考慮に入れる必要があり、システムがキー違法傍受であると考えられ、エラーメッセージクライアントに直接返されます。具体的に違法なキー実際のビジネス・ロジックに基づいて行われるべきであるフィルタリングのこの層を、追加する方法を、単に溶液を得ました。

キャッシュの内訳

しかし、いくつかのデータ・キャッシュのためのデータベースがありません。シーンは主に障害が発生した場合に、要求への鍵と多数の要求の瞬間、突然の流入は、これらの要求はRedisのをヒットされていない場合、でも持ち歩くことができませんでした、DB、過度の圧力が生じたデータベースへのリクエストハングアップします、です。

問題を解決するには、この次のとおりです。

1、ホットキー、キーは自動的にホットスポットを検出、増加するか、有効期限が切れることはありませんし、あるいは論理的に設定したホットキー有効期限が無期限に、具体的な設定方法は述べます。

2、プラスミューテックス。彼らはヒットのRedis、キャッシュロック、更新するようになっているロックの操作にアップデートを実行する際に、データベースをチェックし、ない調査に、ロック後に受信したキャッシュリターンがあるならば、スタートを取得するを見つけていない場合その後、データベースを更新します。(ダブルチェック)

キャッシュの雪崩

キーは、これらの要求の同時故障の多くはDBのキーをヒットすると、データベースはまた、過度の圧力につながり、さらにはハングします言及します。

この問題を解決するには、障害者のキーまでの時間が広がって、あなたが失敗に統一された時間内にランダムな値を追加することができ、または有効期限を分散し、より高度なアルゴリズムを使用することができるようにすることです。

ホットキーの問題

ホットデータのために、我々は有効期限大きなホットキーを設定することができ、または決してロジックに失効しません。それは何を意味するのでしょうか?

彼のポイントは、我々は24時間のホットデータの有効期限を設定した場合、非同期スレッドがホットスポットデータを更新するので、期限切れになる検出されたときに、我々は、このホットデータを監視するためにスニッファを使用することができるということです。論理的な結果を達成することができます有効期限が切れることはありません。

また、当社は自動的にホットデータを検出するためのメカニズムを持っています。それが一定のしきい値が熱い行き、その後、ホットキーにアップグレードする鍵となるでしょう達したときに、各キー一定期間の要求数を監視するための監視プラットフォームがあることが、期限切れの数、鍵データを分析するために、ライブラリの数を確認するには、ホットではありません論理データ。

ここだけのアイデアは、どのように具体的な達成するためにそれらを繰り返すされていません。より良い方法、ウェルカムメッセージ交換がある場合。

おすすめ

転載: www.cnblogs.com/ibigboy/p/10979009.html