成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

緩存與數據庫不一致,咋辦?

開發 開發工具 前端
緩存與數據庫的操作時序,不管是《Cache Aside Pattern》中的方案,還是《究竟先操作緩存,還是數據庫?》中的方案,都會遇到緩存與數據庫不一致的問題。今天聊聊這個問題。

緩存與數據庫的操作時序,不管是《Cache Aside Pattern》中的方案,還是《究竟先操作緩存,還是數據庫?》中的方案,都會遇到緩存與數據庫不一致的問題。今天聊聊這個問題。

[[236541]]

一、數據庫主從不一致

先回顧下,無緩存時,數據庫主從不一致問題。

如上圖,發生的場景是,寫后立刻讀:

  • 主庫一個寫請求(主從沒同步完成)
  • 從庫接著一個讀請求,讀到了舊數據
  • ***,主從同步完成

導致的結果是:主動同步完成之前,會讀取到舊數據。

可以看到,主從不一致的影響時間很短,在主從同步完成后,就會讀到新數據。

二、緩存與數據庫不一致

再看,引入緩存后,緩存和數據庫不一致問題。

如上圖,發生的場景也是,寫后立刻讀:

  • (1+2)先一個寫請求,淘汰緩存,寫數據庫
  • (3+4+5)接著立刻一個讀請求,讀緩存,cache miss,讀從庫,寫緩存放入數據,以便后續的讀能夠cache hit(主從同步沒有完成,緩存中放入了舊數據)
  • (6)***,主從同步完成

導致的結果是:舊數據放入緩存,即使主從同步完成,后續仍然會從緩存一直讀取到舊數據。

可以看到,加入緩存后,導致的不一致影響時間會很長,并且最終也不會達到一致。

三、問題分析

可以看到,這里提到的緩存與數據庫數據不一致,根本上是由數據庫主從不一致引起的。當主庫上發生寫操作之后,從庫binlog同步的時間間隔內,讀請求,可能導致有舊數據入緩存。

假如主從不一致沒法徹底解決,引入緩存之后,binlog同步時間間隔內,也無法避免讀舊數據。

但是,有沒有辦法做到,即使引入緩存,不一致不會比“不引入緩存”更糟呢?這是更為實際的優化目標。

思路轉化為:在從庫同步完成之后,如果有舊數據入緩存,應該及時把這個舊數據淘汰掉。

四、不一致優化

如上圖所述,在并發讀寫導致緩存中讀入了臟數據之后:

  • (6)主從同步
  • (7)通過工具訂閱從庫的binlog,這里能夠最準確的知道,從庫數據同步完成的時間

畫外音:本圖畫的訂閱工具是DTS,可以是cannal,也可以自己訂閱和分析binlog

  • (8)從庫執行完寫操作,向緩存再次發起刪除,淘汰這段時間內可能寫入緩存的舊數據

如此這般,至少能夠保證,引入緩存之后,主從不一致,不會比沒有引入緩存更壞。

畫外音:即使引入緩存,也只有一個很小的時間間隔,可能讀到舊數據。

五、結尾

問:如何完全避免,主從同步時間差,數據的一致性?

答:詳見《數據庫主從不一致,怎么解?》。

問:該方案,只能優化,并發讀寫情況下,緩存與數據庫一致性問題。如果,緩存與數據庫兩次操作,原子性被破壞(例如:修改數據庫成功,淘汰緩存失敗,導致的數據不一致),如何優化數據的一致性呢?

答:詳見《究竟先操作緩存,還是數據庫?》。

【本文為51CTO專欄作者“58沈劍”原創稿件,轉載請聯系原作者】

戳這里,看該作者更多好文

責任編輯:趙寧寧 來源: 51CTO專欄
相關推薦

2019-08-07 10:25:41

數據庫緩存技術

2025-04-08 09:00:00

數據庫緩存架構

2021-12-26 14:32:11

緩存數據庫數據

2018-07-08 07:38:28

數據庫緩存數據

2020-07-20 14:06:38

數據庫主從同步服務

2021-01-19 10:39:03

Redis緩存數據

2024-05-11 07:37:43

數據Redis策略

2021-04-18 15:01:56

緩存系統數據

2021-12-30 09:32:04

緩存數據庫數據

2017-06-20 09:42:52

網絡安全法數據隱私法網絡安全

2020-11-17 06:42:21

MySQL數據庫開源

2021-06-11 09:21:58

緩存數據庫Redis

2025-04-03 09:51:37

2022-12-13 08:15:42

緩存數據競爭

2021-05-27 18:06:30

MySQL編碼數據

2022-03-18 10:53:49

數據系統架構

2020-09-04 06:32:08

緩存數據庫接口

2020-12-24 10:58:42

數據庫架構緩存

2024-11-18 08:00:00

數據倉庫通用語義層商業智能

2022-03-16 15:54:52

MySQL數據format
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产成人免费视频网站视频社区 | 草b视频| a级片在线 | 视频三区 | 性一爱一乱一交一视频 | 亚洲欧美精品一区 | 一区二区三区四区五区在线视频 | 夜夜艹天天干 | 国产精品美女一区二区三区 | 日韩国产中文字幕 | 狠狠婷婷综合久久久久久妖精 | 在线国产精品一区 | 伊人影院在线观看 | 影音先锋中文字幕在线观看 | 国产精品永久免费观看 | 久久国产视频播放 | 日韩资源 | 国产一区二区三区在线视频 | 91就要激情 | 亚洲国产一区在线 | 欧美色图另类 | 国产69久久精品成人看动漫 | www.久久久久久久久久久久 | 欧美美乳 | 国产精品污污视频 | 九热在线 | 国产视频不卡一区 | 精品久久国产 | 国产原创在线观看 | 国产精品久久久久久久7电影 | www97影院 | 亚洲成人免费在线观看 | 2020国产在线 | 久久精品亚洲精品国产欧美 | a毛片 | 亚洲视频一 | 成人av一区二区在线观看 | 在线精品亚洲欧美日韩国产 | 国产一区二区三区视频 | 99视频免费看 | 蜜桃传媒一区二区 |