redis キャッシュ雪崩の英語の説明は、実行中のバイソンです。これは、キャッシュ層がクラッシュした後、同時トラフィックが大量のバックエンド ストレージを伴って疾走するバイソンのようになることを意味します。サービスを提供するために、すべてのリクエストがストレージ層に到達し、ストレージ層への呼び出し数が大幅に増加し、ストレージ層がハングアップします。
#1. アバランチとは
キャッシュ層は大量のリクエストを運ぶため、ストレージ層を効果的に保護します。ただし、何らかの理由でキャッシュが全体としてサービスを提供できない場合、すべてのリクエストがストレージ層に到達し、ストレージ層への呼び出し数が大幅に増加し、ストレージ層がハングアップします。キャッシュ雪崩の英語の説明は「running bison」です。これは、キャッシュ層がクラッシュした後、同時トラフィックが大量のバックエンド ストレージを伴って疾走するバイソンのようになることを意味します。
この問題が発生するシナリオの 1 つは、キャッシュ サーバーが再起動された場合、または一定期間に多数のキャッシュが集中したため、キャッシュに障害が発生した場合に大量のデータがキャッシュ サーバーに直接アクセスすることです。 DB. この時、DBは大きな影響を受けます。
2. 解決策
(1) Redis クラスターと DB クラスターの高可用性を設定し、Redis がダウンした場合はすぐに置き換えることができます別のマシンが引き継ぎます。これにより、いくつかのリスクを防ぐことができます。
(2) ミューテックス ロックを使用する
キャッシュの有効期限が切れたら、ロックまたはキューイングによってデータベースの読み取りおよび書き込みを行うスレッドの数を制御します。たとえば、1 つのスレッドのみがデータのクエリと特定のキーのキャッシュの書き込みを許可され、他のスレッドは待機します。スタンドアロンマシンの場合はsynchronizedやlockで解決できますが、分散環境の場合はredis setnxコマンドで解決できます。
(3) 異なるキーを異なる有効期限に設定して、キャッシュの無効化時点を不一致にし、均等な分散を実現することができます。
(4) 期限切れにしない
Redis は期限切れにならないように設定されているため、ホット スポットが存在せず、物理的に期限切れになりません。
(5) リソース保護
Netflix の hystrix を使用すると、さまざまなリソースのスレッド プールを分離して、メイン スレッド プールを保護できます。
推奨チュートリアル: 「
Redis チュートリアル 」
以上がレディスアバランチとはの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。