彼らは何を取得してテキストRedisのキャッシュで、キャッシュ貫通雪崩(溶液を含みます)

序文

キャッシュキャッシュの浸透や雪崩:インメモリ・データベースとして、常にさまざまな問題を持っているつもりものRedis、この記事では、二つの問題のために説明することは主です。そして、いくつかのソリューションを提供します。これら2つの問題がインタビューよくあるご質問の基本的な問題です。

キャッシュの浸透

1、の概念

キャッシュの浸透のコンセプトは、ユーザーがデータを照会したい、簡単で、データベースの永続化層への問い合わせ、その後、キャッシュミスで何Redisのインメモリデータベースを、見つかりませんでした。何があることを見出していない場合、このクエリは失敗しました。多くのユーザーがキャッシュにヒットしなかったとき場合は、次に我々は、データベースの永続化層を要求するために行ってきました。このデータベースの永続化層は今回が浸透して登場したキャッシュに相当し、圧力の多くの原因となります。

継続的、瞬間際にキーの故障、この時点に焦点によって複雑に大きな、破壊やキャッシュの違い、キャッシュ破壊、非常にホットキー手段は、大きなを運んで保管同時にアクセスすることに留意すべきです同時は障壁に穴を開けるように、大きなキャッシュ、直接データベース要求を身に着けていました。

キャッシュ事実を貫通避けるために、多くのソリューションがあります。ここではいくつかあります。

2.ソリューション

(1)ブルームフィルタ

ブルームフィルタは、数十億がある統計によると、データ構造、スパムサイトや世界的な組み合わせ、通常のサイトです。これらの迷惑サイトをフィルタリングするには、インターネット警察は、あなたは、ブルームフィルタを使用することができますバー、内部の比較データベースに行くことはできません。我々は億のスパムアドレスを格納したとします。

最初億個のバイナリビットを持って、その後、8つの指紋情報(F1、F2、...、F8)を生成するために8つの異なる乱数である(F1、F2、...、F8)とインターネット警察を生成することができます。次に、この指紋情報は億8つの自然数8 G1 1、G2、...、G8にマッピングされている乱数生成器Gを使用します。最後に、このバイナリ8つの位置1に、すべてのセット。次のようにプロセスは以下のとおりです。

ここに画像を挿入説明
スカイネット警察が不審なサイトは、サイトがXX、ハッシュによって8ビットのアレイ上億ポイントにマッピングされた最初の不審なサイトであるかどうかを評価するためにしようと、そこに発見されました。8点がある場合にはポイントではありません、それは要素が必ずしもコレクション内に存在していないと判断することができます。

キャッシュを解決する方法であるブルームフィルタは、それを貫くのRedis?まず、ユーザがブルームフィルタがセットに見つかりません使用して、クエリに望んでいるときに、非常に単純なクエリパラメータは、ハッシュに格納することができる、それはクエリがもはや永続化層で破棄されません。
ここに画像を挿入説明
この形式は非常に単純です。

2、空のオブジェクトキャッシュ

記憶層は、リターンヌルオブジェクトもキャッシュされてもよく、また、有効期限を設定し、その後のデータにアクセスする場合であっても、ヒットしなかった場合、キャッシュからバックエンドデータソースの保護を取得する。
ここに画像を挿入説明
しかし、この方法は存在します二つの質問:

ヌル値をキャッシュすることができる場合は、そのキャッシュは、それが空の値の多くはだから、キーかもしれ複数のキーを格納するために多くのスペースを必要とすることを意味し、
nullが有効期限を設定してもために、またはキャッシュを存在します一貫性のないデータ層とストレージ層は、サービスの一貫性の必要性に影響を与える時間の窓があるでしょう。

第二に、キャッシュ雪崩

1、の概念

雪崩キャッシュ手段、キャッシュ層のエラーが発生している、それが正常に動作していません。だから、すべての要求は、ストレージ層に到達し、記憶層の呼び出しは、ストレージ層がハングする原因と、急増します。

ここに画像を挿入説明

2.ソリューション

(1)可用性のRedis

このアイデアの意味は、Redisのはおそらくハングアップすることがあるため、その後、私はさらにいくつかの追加のRedisよりも、他のハングが、実際には、クラスタを構築することであるようにした後、仕事を続けることができるということです。

(2)制限格下げ

このソリューションの思想は、キャッシュミスした後、スレッドの数を制御することで、ロックやキューによって、書き込みキャッシュデータベースを読み込みます。例えば、1つのスレッドのみのデータと書き込みキャッシュを照会することを可能にするためのキー、他のスレッドが待機します。

(3)データ予熱

データの意味を加熱すること、正式な展開の前に、私が最初のデータへの事前のアクセスを再度、このデータは、アクセスの数が多いの一部であってもよいキャッシュにロードされますがあります。異なるキャッシュキーをロード手動でトリガ差し迫った大同時アクセスする前に、でも可能な限りキャッシュミスの時点で異なる有効期限の時間を設定します。

公開された146元の記事 ウォン称賛66 ビュー50000 +

おすすめ

転載: blog.csdn.net/qq_38923792/article/details/105286296