1.キャッシュ雪崩とは何ですか?
たとえば:Redisのは、すべてのデータがキャッシュされて置くことができない、すべてのRedisのデータは、有効期限を設定する必要があり、タイミング及び不活性期限切れに2つの戦略を削除するには、キーを削除します。キャッシュされたデータセットの有効期限が同じであり、これらのデータのRedisのほんの一部がキャッシュ全体の失敗をもたらした、削除された場合、すべての要求は、データベースに行ってきました。
要するに:当社のキャッシュデータベース(Redisのは)すべての要求をデータベースになってきた、ハングアップしています。
2、どのようにキャッシュ雪崩を解決するには?
ランダム有効期限内に設けられたバッファに、このようにキャッシュを低減すること、同じ時点で満了します。
Redisのがハングアップする場合は、三点の解決に分けることができます。
1)事件の前に、高可用性のRedisを達成するために、ハングのRedisの発生を回避しよう
2)事件の時に、あなたはデータベースGGを防止することができるローカルキャッシュや制限のメカニズム、最大の範囲を設定することができます
3)事件の後、持続性のRedis、自動的にすばやく条件災害事前に返された、再起動後にディスクからデータをロードします。
3.キャッシュが浸透何ですか?
キャッシュデータが存在しない特定のクエリを貫通する指します。フォールトトレランス考慮して、キャッシュは、このデータを持っていないとき、あなたは、データベースから検索しますので、それがキャッシュに保存されていない場合は、データベースが見つかりません。これは、データリクエストに存在しない時は、キャッシュの失われた意味を見つけるために、データベース、データベースに接続されているもたらしました。
要するに:要求されたデータがなくなっている要求データベースに結果キャッシュにヒット、多くのではありません。
4、どのようにキャッシュが浸透解決するには?
二つのオプション:
要求されたデータが存在しない場合は無効1)、あなたは違法な事前のインターセプトでブルームフィルタ(ブルームフィルタ)を使用することができ、データベース層にこの要求をさせません。
要求されたデータが見つからなかった場合は2)、中に入ることができ、キャッシュから再び要求されたキャッシュ(典型的には、短い有効期限を設定する)、に空のオブジェクトを保存することができます。
5.ダブルキャッシュと同じデータベースを書くとは何ですか?
我々は、データを更新する必要がある場合には、多くの場合、それはデータベースとキャッシュで一貫性のないデータになります。理論的には、限り、あなたは有効期限を設定すると、あなたはデータキャッシュとデータベースが最終的に同じであることを確認することができるようになります。限り、キャッシュされたデータの有効期限が切れたとして、それが削除され、その後、読んで、彼らは、データベース内のデータを検索します、キャッシュに書き込まれたデータを読み取ります。