Redisキャッシュの問題

Redisはキャッシュのサポートに使用されていますが、キャッシュの問題は何ですか?

1.一貫性の問題

分散システムのデータは、一般的に弱整合性があり、最終的には整合性があります。CAPの原則により、一貫性、可用性、およびパーティションの許容度に関して、分散システムは、ノードまたはネットワークパーティションの障害が発生した場合でも、一貫性または可用性を満たすサービスを提供できます。 )3つのうち2つだけを選択できます。分散システムにはパーティションのフォールトトレランスが必要なため、一貫性と可用性のみがオプションです。2番目の利点が最初に来るため、一貫性を犠牲にすることしかできません。

Redisキャッシュの一貫性の問題に対処する方法は、適切なキャッシュ更新戦略を含む、キャッシュとデータベースの間のデータの不一致の確率を減らす適切な戦略を採用し、データベースの更新後に適時にキャッシュを更新し、キャッシュが失敗した場合の再試行メカニズムを増やすことです。ただし、この2つの間に強い整合性があるという保証はありません。プロジェクトのキャッシング要件が強い整合性がある場合は、キャッシングを使用しないでください。

2. Redis雪崩

すべてのKEYが一緒に失敗すると、すべての要求が瞬時にデータベースに送られ、データベースは必然的にそれを処理できなくなります。唯一の方法はデータベースを再起動することですが、再起動後も、すべての要求はデータベースにまとめられ、データベースが強制終了されます。

戦略は、異なるKEYに異なる有効期限を設定すること、または異なるサーバーに異なる鍵を配布することです。

3. Redisのキャッシュ浸透

データベースにまったく存在しないデータを要求します。データベースに存在しない場合、それは確かにredisには存在しません。ただし、外部の世界やハッカーが次々と要求を続け、継続的な攻撃によりデータベースに大きな圧力がかかり、データベースが深刻に破壊されます。

対処方法:
1)ユーザー認証、パラメーター検証、および基本的な検証のID、直接傍受するためのID <= 0などの不正な検証を直接返すなど、インターフェイスレイヤーで検証を追加します。
2)ブルームフィルターを適用します。データがデータベースに存在しない場合は、直接返します。

4. Redisキャッシュの内訳

キーが非常にホットであり、このポイントへの多数のリクエストがノンストップで大規模な同時アクセスを伝達していることを示します。キーが失敗すると、連続する大きな同時実行性がこのキーのポイントでデータベースに直接落ちますキャッシュをパンクチャしました。キャッシュの侵入は雪崩に似ていますが、理由は異なります。雪崩はキャッシュ障害の大きな領域であり、キャッシュ侵入はデータに対する継続的な要求です。

戦略:ホットスポットデータが無期限になるように設定するか、相互排他ロックを追加します。

参照記事:人類の歴史
中で最も完全なRedisテクノロジーのコレクション、生涯にわたる後悔のシリーズを見てはいけません

1134件のオリジナル記事が公開されました 賞賛 された354件 349万回の閲覧

おすすめ

転載: blog.csdn.net/leftfist/article/details/105185305