MySQLとRedisのデータ整合性の問題

背景

  同時実行性の高いビジネスシナリオでは、データベースパフォーマンスのボトルネックは、過度の同時ユーザーアクセスが原因であることが多いため、Redisバッファーが存在します。

場合

  1. A書き込み、B読み取り、

    書き込み:1.キャッシュを削除する2.書き込み操作(さまざまな理由で1が消費される)3.キャッシュを更新する

    読み取り:1.読み取りキャッシュ2.読み取りDB 3更新キャッシュ

    書き込みが成功する前に読み取ります。ダーティデータが読み取られます。キャッシュは最新のデータではありません

  第二に、マスターとスレーブの分離

    同様に、マスター/スレーブ遅延のプロセスでは、読み取り操作でダーティデータが読み取られます

 

解決する:

  1.データを書き込んだ後、数秒ごとにキャッシュを削除する消去メカニズム

  2.binlog、Redisはbinlogのレコードに従ってRedisを更新します

 

おすすめ

転載: www.cnblogs.com/xingkongyihao/p/12676825.html