免费爱碰视频在线观看,九九精品国产屋,欧美亚洲尤物久久精品,1024在线观看视频亚洲

      mysql和redis數(shù)據(jù)最終一致性的解決方案

      此問題是無法做到100%場景一致性的,只能做到基本一致或者最終一致性。

      推薦使用的方案

      延時雙刪

      原理:先進行緩存清除,再執(zhí)行update,最后(延遲N秒)再執(zhí)行緩存清除。(延遲N秒)的時間要大于一次寫操作的時間。一般執(zhí)行流程:

      1、服務節(jié)點刪除 redis 主庫數(shù)據(jù)

      2、服務節(jié)點修改 mysql 主庫數(shù)據(jù)。

      3、服務節(jié)點使得當前業(yè)務處理 等待一段時間,等 redis 和 mysql 主從節(jié)點數(shù)據(jù)同步成功。

      4、服務節(jié)點從 redis 主庫刪除數(shù)據(jù)。

      5、當前或其它服務節(jié)點讀取 redis 從庫數(shù)據(jù),發(fā)現(xiàn) redis 從庫沒有數(shù)據(jù),從 mysql 從庫讀取數(shù)據(jù),并寫入 redis 主庫。

      基于MQ的可靠性消息通信

      具體步驟如下:

      1、把要刪除的緩存值或者是要更新的數(shù)據(jù)庫值暫存到消息隊列MQ中

      2、當刪除緩存值或者是更新數(shù)據(jù)庫值成功時,把這些值從消息隊列中去除,以免重復操作。3、當刪除緩存值或者是更新數(shù)據(jù)庫值失敗時,執(zhí)行失敗策略,重試服務從消息隊列中重新讀取這些值,然后再次進行刪除或更新。

      4、刪除或者更新失敗時,需要再次進行重試,重試超過的一定次數(shù)。向業(yè)務層發(fā)送報錯信息。

      canal組件

      原理:監(jiān)控mysql主庫的binlog日志,把更新后的數(shù)據(jù)同步到redis中。使用Binlog實時更新/刪除Redis緩存。利用Canal,即將負責更新緩存的服務偽裝成一個MySQL的從節(jié)點,從MySQL接收Binlog,解析Binlog之后,得到實時的數(shù)據(jù)變更信息,然后根據(jù)變更信息去更新刪除Redis緩存。

      鄭重聲明:本文內(nèi)容及圖片均整理自互聯(lián)網(wǎng),不代表本站立場,版權歸原作者所有,如有侵權請聯(lián)系管理員(admin#wlmqw.com)刪除。
      (0)
      用戶投稿
      上一篇 2022年6月23日 12:14
      下一篇 2022年6月23日 12:14

      相關推薦

      聯(lián)系我們

      聯(lián)系郵箱:admin#wlmqw.com
      工作時間:周一至周五,10:30-18:30,節(jié)假日休息