Redisの雪崩キャッシュ、キャッシュとキャッシュの浸透破壊の

Redisのは、それが非常に高速クエリし、非常に高い瞬間同時実行のクマすることができ、他のデータベースに比べて、非リレーショナルデータベースです。それは、多くの場合、(MySQLなど)の主要なデータベースサーバーの圧力を低下させるために、キャッシュストレージサイトに使用されています。
Redisの雪崩キャッシュ、キャッシュとキャッシュの浸透破壊の
使用Redisのは、時間にキャッシュとして、多くの場合、アバランシェ降伏と貫通質問がキャッシュされます。どのようなこれらの古典的な問題?どのように解決するには?
雪崩キャッシュ
キャッシュ雪崩キーの多数の同時故障、キーはデータベースにも過度の圧力につながり、さらにはハングします、データベースにこれらを要求します。
キートップの有効期限のすべてが12時間、午前12時更新であれば、一般的なビジネスプラットフォームデータは、キャッシュされる、多数のユーザーのゼロスパイク活動の流入があり、仮定は毎秒6000個の要求だった、あなたは、元のキャッシュを運ぶことができます5000のライブリクエストあたりますが、キャッシュはキーが無効であるすべてのでした。必然的に運ぶことができませんでしたすべてのデータベースのための6000の要求、オフこの時点で1秒、意志アラーム、およびDBAへの反応は、データベースを再起動する場合がありますが、データベースが殺害にすぐに新しい流量となっています。
解決策:有効期限を分散し、あなたが失敗に統一された時間内にランダムな値を追加することができ、またはそれ以上の高度なアルゴリズムを使用するように、外に失敗キーの普及に時間をしてみましょう。
キャッシュ浸透
キャッシュを扱うの手順、キャッシュは通常、キャッシュはこのキーがnullを取得していない場合、それはキャッシュにデータベース、およびセットから照会し、クエリで始まります。特定の値が存在しないことをクエリデータは、データベースのクエリ結果キャッシュの浸透に行くべきデータ要求に存在していない時間になりますキャッシュに書き込まれていないデータを見つけること、データベースからクエリする必要があります。
簡単に言えば、これは裏を行いますされていない、キャッシュとデータベースの値を検索操作を開始したと述べ、このプロセスの、Redisのを読んで、データベースへの接続を見つけないと見つかりませつまりない、浸透キャッシュが得られ。
解決策:あなたはフィルタの層を追加することができ、システムはキー違法傍受であると考えられ、システム・レベルでクライアントに直接、エラー・メッセージが返されました。
キャッシュの内訳
キャッシュは、データキャッシュとデータベースのための内訳ではないです。多数の要求の突然の流入が主に障害が発生した後にすると、DB、過度の圧力や崩壊につながるデータベースに要求します。
:この問題を解決するには、にある
設定、1フォーカスキー、キーは自動的に論理的に無期限にホットスポット、無期限に増加したフォーカスキーまたはセットの有効期限、またはセットを検出します。
2、プラスミューテックス。彼らが見つけたとき何がキャッシュロック、更新に誰がいるロックの操作にアップデートを実行する際に、データベースを確認し、ない調査に、ロック後に受信したキャッシュリターンがある場合は、スタートを得るために、Redisのを打つんその後、データベースを更新します。(ダブルチェック)

おすすめ

転載: blog.51cto.com/1086869/2451308