在线不卡日本ⅴ一区v二区_精品一区二区中文字幕_天堂v在线视频_亚洲五月天婷婷中文网站

  • <menu id="lky3g"></menu>
  • <style id="lky3g"></style>
    <pre id="lky3g"><tt id="lky3g"></tt></pre>

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

    此問題是無(wú)法做到100%場(chǎng)景一致性的,只能做到基本一致或者最終一致性。

    推薦使用的方案

    延時(shí)雙刪

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

    1、服務(wù)節(jié)點(diǎn)刪除 redis 主庫(kù)數(shù)據(jù)。

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

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

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

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

    基于MQ的可靠性消息通信

    具體步驟如下:

    1、把要?jiǎng)h除的緩存值或者是要更新的數(shù)據(jù)庫(kù)值暫存到消息隊(duì)列MQ中

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

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

    canal組件

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

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

    相關(guān)推薦

    聯(lián)系我們

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