ホームページ >データベース >Redis >レディスアバランチとは

レディスアバランチとは

青灯夜游
青灯夜游オリジナル
2019-06-04 10:32:145665ブラウズ

redis avalancheとは何ですか?以下の記事で簡単に紹介していますので、ご参考になれば幸いです。

レディスアバランチとは

雪崩とは何ですか?

キャッシュ層は大量のリクエストを運ぶため、ストレージ層を効果的に保護しますが、何らかの理由でキャッシュ全体がサービスを提供できない場合、すべてのリクエストが到着します。ストレージ層、ストレージ層への呼び出し数が大幅に増加し、ストレージ層もハングアップします。キャッシュ雪崩の英語の説明は「running bison」です。これは、キャッシュ層がクラッシュした後、疾走するバイソンのように同時トラフィックがバックエンド ストレージに大量にアクセスすることを意味します。

キャッシュなだれを簡単に理解すると、新しいキャッシュが到着していない期間(キャッシュは正常に取得される)に、元のキャッシュに障害が発生する(またはデータがキャッシュにロードされない)ことが原因で発生します。 Redis から (以下に示すように) すべてのキャッシュにアクセスする必要があります すべてのリクエストはデータベースのクエリに送信されるため、データベースの CPU とメモリに多大な負荷がかかり、深刻な場合には、データベースのダウンタイムやシステム クラッシュが発生する可能性があります。

レディスアバランチとは

キャッシュ エラーは次のとおりです。

レディスアバランチとは

この問題が存在するシナリオの 1 つは次のとおりです。キャッシュ サーバーがまたは、一定期間内に大量のキャッシュが障害を起こす可能性があり、障害が発生すると大量のデータがDBに直接アクセスすることになり、DBに大きな負荷がかかります。

キャッシュに障害が発生した場合の雪崩現象は、基盤となるシステムに重大な影響を与えます。では、この問題に対する解決策は何でしょうか?

解決策

1) Redis クラスターと DB クラスターの高可用性を設定し、Redis がダウンした場合は、すぐに別のマシンに置き換えることができます。これにより、いくつかのリスクを防ぐことができます。

2) ミューテックス ロックを使用する

キャッシュの有効期限が切れたら、ロックまたはキューイングを通じてデータベースを読み書きするスレッドの数を制御します。たとえば、1 つのスレッドのみがデータのクエリと特定のキーのキャッシュの書き込みを許可され、他のスレッドは待機します。スタンドアロンマシンの場合はsynchronizedやlockで解決できますが、分散環境の場合はredis setnxコマンドで解決できます。

3) キーごとに異なる有効期限を設定して、キャッシュ無効化時点の一貫性をなくし、均等な分散を実現することができます。

4) 期限切れにしない

Redis で永続的な非期限切れ設定を設定すると、ホット スポットがなくなります。つまり、物理的に期限切れになりません。

5)、リソース保護

Netflix の hystrix を使用すると、さまざまなリソースのスレッド プールを分離して、メイン スレッド プールを保護できます。

以上がレディスアバランチとはの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。