MySQLとRedisのキャッシュコヒーレンシを達成

まず、リアルタイムの同期

ある強い一貫性の高い需要、リアルタイムの同期プログラムを使用する必要がありますについては、クエリキャッシュは、DBから別のクエリを見つけることができないキャッシュに保存し、データベースを更新するために、キャッシュを更新し、キャッシュの内容を更新することはお勧めしませんキャッシュの有効期限を(、設定直接)キャッシュの有効期限が切れる設定

@Cacheable:查询时使用,注意Long类型需转换为String类型,否则会抛异常。
@CachePut:更新时使用,使用此注解,一定会从DB上查询数据
@CacheEvict:删除时使用
@Caching:组合用法

第二に、非同期コラム

並行性の高いため、カラムは、同期モードと非同期とすることができ、生産及び消費のカフカメッセージングミドルウェア処理メッセージを使用することができる等。

キャッシュの浸透

キャッシュの浸透は、キャッシュがデータベースクエリから必要とされているため、存在しませんがヒットされていない特定のクエリデータを参照データキャッシュが書かれていません見つけることができない、それがデータベースに行くべきデータ要求に存在しない時間につながりますクエリ、キャッシュの浸透が生じ。

ソリューション:

永続クエリキャッシュレスヌル結果より、最初の直接戻り、クエリが戻った後、次いで、全くクエリを空にしないがある場合、キャッシュは、(キー)が存在するかどうかを決定します。
DBの値が(もちろん、あなたが空のキャッシュの有効期限が設けられている)が見つけることができませんされている場合、挿入、または場合でも、必要性に注意が問合せキーをクリアします

キャッシュ雪崩

キャッシュは時間をかけて集中している場合は、期限が切れていたキャッシュの浸透の多くが発生し、すべてのクエリは、キャッシュ雪崩で、その結果、データベース上に落ちます。

ソリューション:

これは完璧なソリューションではなく、ユーザーの行動を分析することができ、均等に分散障害ポイントまでの時間を作ってみます。
同時要求の数が多いの回避に失敗するためには、書き込みにシングルスレッド(プロセス)を確保するために、ロックやキャッシュキューの方法を検討するほとんどのシステム設計者は、基礎となるストレージ・システム上に落ちます。

ホットキー

ホットキー:非常に多くの場合、キーの訪問、負荷の増加をもたらし、キャッシュを構築するために多数のスレッドのキーの故障、システムがクラッシュしました。

ソリューション:

図1に示すように、分散ロックに分散ロックなど単一同期、ロック、。
2は、キャッシュの有効期限はなく、対応する値のキーでは、設定されていません。有効期限非同期更新キャッシュよりも長く保存され検出された場合。
小さな満了時間T1 T0 3、有効期限よりも値のT1の組の値の有効期限が切れ、更新キャッシュ動作T1を拡張します。
図4は、ラベルのキャッシュ設定、キャッシュタグは、有効期限を設定したラベルキャッシュの有効期限が切れた後、必要性は実際の非同期キャッシュを更新します。

公開された179元の記事 ウォンの賞賛185 ・は 80000 +を見て

おすすめ

転載: blog.csdn.net/Sophia_0331/article/details/104796763