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

緩存與數(shù)據(jù)庫不一致,咋辦?

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

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

[[236541]]

一、數(shù)據(jù)庫主從不一致

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

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

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

導(dǎo)致的結(jié)果是:主動同步完成之前,會讀取到舊數(shù)據(jù)。

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

二、緩存與數(shù)據(jù)庫不一致

再看,引入緩存后,緩存和數(shù)據(jù)庫不一致問題。

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

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

導(dǎo)致的結(jié)果是:舊數(shù)據(jù)放入緩存,即使主從同步完成,后續(xù)仍然會從緩存一直讀取到舊數(shù)據(jù)。

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

三、問題分析

可以看到,這里提到的緩存與數(shù)據(jù)庫數(shù)據(jù)不一致,根本上是由數(shù)據(jù)庫主從不一致引起的。當主庫上發(fā)生寫操作之后,從庫binlog同步的時間間隔內(nèi),讀請求,可能導(dǎo)致有舊數(shù)據(jù)入緩存。

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

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

思路轉(zhuǎn)化為:在從庫同步完成之后,如果有舊數(shù)據(jù)入緩存,應(yīng)該及時把這個舊數(shù)據(jù)淘汰掉。

四、不一致優(yōu)化

如上圖所述,在并發(fā)讀寫導(dǎo)致緩存中讀入了臟數(shù)據(jù)之后:

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

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

  • (8)從庫執(zhí)行完寫操作,向緩存再次發(fā)起刪除,淘汰這段時間內(nèi)可能寫入緩存的舊數(shù)據(jù)

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

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

五、結(jié)尾

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

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

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

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

【本文為51CTO專欄作者“58沈劍”原創(chuàng)稿件,轉(zhuǎn)載請聯(lián)系原作者】

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

責任編輯:趙寧寧 來源: 51CTO專欄
相關(guān)推薦

2019-08-07 10:25:41

數(shù)據(jù)庫緩存技術(shù)

2021-12-26 14:32:11

緩存數(shù)據(jù)庫數(shù)據(jù)

2025-04-08 09:00:00

數(shù)據(jù)庫緩存架構(gòu)

2018-07-08 07:38:28

數(shù)據(jù)庫緩存數(shù)據(jù)

2020-07-20 14:06:38

數(shù)據(jù)庫主從同步服務(wù)

2021-01-19 10:39:03

Redis緩存數(shù)據(jù)

2024-05-11 07:37:43

數(shù)據(jù)Redis策略

2021-04-18 15:01:56

緩存系統(tǒng)數(shù)據(jù)

2021-12-30 09:32:04

緩存數(shù)據(jù)庫數(shù)據(jù)

2017-06-20 09:42:52

網(wǎng)絡(luò)安全法數(shù)據(jù)隱私法網(wǎng)絡(luò)安全

2020-11-17 06:42:21

MySQL數(shù)據(jù)庫開源

2021-06-11 09:21:58

緩存數(shù)據(jù)庫Redis

2025-04-03 09:51:37

2022-12-13 08:15:42

緩存數(shù)據(jù)競爭

2021-05-27 18:06:30

MySQL編碼數(shù)據(jù)

2022-03-18 10:53:49

數(shù)據(jù)系統(tǒng)架構(gòu)

2020-09-04 06:32:08

緩存數(shù)據(jù)庫接口

2024-11-18 08:00:00

數(shù)據(jù)倉庫通用語義層商業(yè)智能

2022-03-16 15:54:52

MySQL數(shù)據(jù)format

2020-12-24 10:58:42

數(shù)據(jù)庫架構(gòu)緩存
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 狠狠视频 | 日本三级播放 | 精品国产乱码一区二区三 | 国产黄色大片网站 | 国产精品爱久久久久久久 | 成人在线视频免费看 | 天堂素人约啪 | 秋霞电影院午夜伦 | 久热国产在线 | 夜夜爽99久久国产综合精品女不卡 | 国产日韩欧美在线观看 | 亚洲高清在线免费观看 | 夜夜骑首页 | 久久久久1 | 久久一区二区三区四区 | 美女啪啪国产 | 2018天天干天天操 | 中文字幕一区在线 | 中文字幕视频在线看5 | 国产精品成人一区二区三区吃奶 | av永久免费 | 久久久精品 | 操一草 | 九九热精品在线视频 | 久久精品视频12 | 网站黄色av | 日韩av成人在线 | 国产成人艳妇aa视频在线 | 欧美久久精品一级c片 | 久久精品国产一区二区电影 | 日本在线一区二区 | a在线观看免费 | 精品人伦一区二区三区蜜桃网站 | 中文字幕av在线 | 波霸ol一区二区 | 久久久久国产精品一区二区 | 日韩一区二区在线播放 | japanhd美女动 | 国产精品亚洲精品 | 日韩成人精品视频 | 国产一二三区精品视频 |