Redisの7シリーズ:Redisのキャッシュアバランシェ降伏キャッシュ、キャッシュ温暖化、キャッシュを更新し、キャッシュダウングレード

キャッシュ雪崩

1、の概念

(同じキャッシュ時から)同時に、キャッシュの有効性は、データベースへのアクセス、CPUやメモリデータベースに巨大な圧力を生じるが、データベースは、クラッシュにシステム全体を引き起こし、従って連鎖反応を形成する、深刻なダウンタイムを引き起こす可能性があります。

2.ソリューション

データベース(非並行性の高いシナリオ、または重度の障害物)にアクセスするためのロックまたはキューを使用して、
Bは、(キャッシュにフラグが期限切れを示すときに、データ長が二回限り有効期限が切れている場合に、古いデータが発信側端末に返され、非同期ロード・データ)キャッシュを更新期限フラグを設定しました
Cは、異なるキャッシュキーの有効期限を設定します
D、「二次キャッシュは」、調査します

第二に、キャッシュの浸透

1、の概念

データベース内のユーザーのクエリデータは、それはこのようにするとき、ユーザーのクエリをリードする、しませんでしたし、データベースを再度行って、その後、(役に立たない行なっ2件の問い合わせに相当)、空を返すたびに照会キャッシュに自然ではありません。このような要求は、多くの場合、キャッシュヒット率が記載されたデータベースを、照会直接キャッシュをバイパスします。

2.ソリューション

、ブルームフィルタでは、十分な大きさのビットマップへのすべてのデータのハッシュが存在してもよい、一つのビットマップデータが存在してはならない、従って、ストレージシステムの基礎となるクエリに圧力を回避し、ブロックされます。(複数のハッシュ関数)
問い合わせは(データまたは存在しないシステム障害)空のデータを返した場合、Bは、それはまだ空のキャッシュ結果であるが、その有効期限は、もはや5分よりも、非常に短いことで直接設定できなくなりますデフォルト値はキャッシュに保存されているので、そこにキャッシュ内の値であるが、データベースへのアクセスを継続しません得るために二回目は、このアプローチはシンプルで、粗さです。

第三に、キャッシュ・ウォーミング

1、の概念

オンライン・システムの後、先にキャッシュの数の最初のターンの直接データベースを照会して、データ・キャッシュの問題を再検討するために、ユーザーによって要求されたときに回避するために、キャッシュ・システムにロードされました。直接キャッシュデータを照会するユーザーは、以前に予熱し。

2.ソリューション

、直接書き込みキャッシュがページ、次の行を更新すると、手動操作。
プロジェクトが始まったときにB、データの量を自動的にロードすることができます。
Cは、キャッシュをフラッシュタイムアウトしました。
 

第四に、キャッシュの更新

内蔵の外キャッシュサーバのキャッシュの無効化戦略に加えて、我々はまた、特定のビジネス・シナリオに基づいて、キャッシュの無効化をカスタマイズすることができます(Redisのデフォルトから選択する6つの戦略がある)以下のように、一般的な戦略は、次のとおりです。
、定期的なクリーニングは、キャッシュを有効期限が切れ;
Bは、時間をかけて、ユーザによって要求されたとき、その要求がされているが、キャッシュの有効期限が切れて判断し、基盤となるシステムの有効期限が切れて、新しいデータを取りに行くとキャッシュを更新。
 
二つのオプションの長所と短所:
第1の欠点は、キーバッファの多数を維持することがあまりにも面倒であるということである、第二の欠点は、あなたは、すべてのユーザー要求のキャッシュ無効化判断に来るたびに、ロジックが比較的複雑であるということです!
 

第五に、キャッシュダウングレード

トラフィック急増、または非コアサービス(たとえば、遅い応答時間または無応答など)サービスの問題は、コアプロセスのパフォーマンスに影響を与えたとき、まだサービスは、サービスにも、有害でまだ利用可能であることを確認する必要があります。システムが自動的に重要なデータをダウングレードすることができる、スイッチは、人工劣化を達成するように構成することができます。
 
究極の目標は、コアダウングレードサービスでも非可逆のために、利用可能であることを確認することです。そして、いくつかのサービスが(例えばショッピングカートの決済など)に分解されていません。
従来のシステムは、ハンサムを保存するためのポーンを失うことはないかどうかを確認カーディングにシステムをダウングレードするには、ダウングレードすることができます守るために死に戦わなければならないものを引き出すためには、例えば、ログレベルの計画を参照することができます:
(1)一般:このよう時折ジッタやネットワークサービスなどの一部のサービスは、自動的にダウングレードし、ライン上でタイムアウトしています。
(2)警告:成功率の一部のサービスは、(95〜100%の間、例えば)経時変動を自動的にまたは手動で分解ダウングレード、およびアラームを送信することができます。
(3)エラー:入手可能な90%、またはオフフックデータベース接続プール、または最大閾値に耐えることができるシステムの突然のサージへの訪問、以下のように、この時間は、いくつかのケースをダウングレードダウングレード手動自動的に又はできます。
(4)重大なエラー:例えば、特別な理由データエラーのため、緊急時のマニュアルの格下げを必要としているこの時間。

おすすめ

転載: www.cnblogs.com/dudu2mama/p/11366302.html