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

緩存與數(shù)據(jù)庫不一致,你遇到過嗎?

開發(fā) 開發(fā)工具
相信大家偶爾會(huì)遇到緩存與數(shù)據(jù)庫不一致的問題。今天聊聊這個(gè)話題。

相信大家偶爾會(huì)遇到緩存與數(shù)據(jù)庫不一致的問題。今天聊聊這個(gè)話題。

數(shù)據(jù)庫主從,為什么會(huì)不一致?

[[442079]]

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

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

(1)主庫一個(gè)寫請求(主從沒同步完成);

(2)從庫接著一個(gè)讀請求,讀到了舊數(shù)據(jù);

(3)最后,主從同步完成;

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

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

緩存與數(shù)據(jù)庫,什么時(shí)候會(huì)不一致?

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

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

(1+2)先一個(gè)寫請求,淘汰緩存,寫數(shù)據(jù)庫;

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

(6)最后,主從同步完成;

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

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

為什么會(huì)出現(xiàn)這類不一致?

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

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

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

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

緩存與數(shù)據(jù)庫不一致,可以怎么優(yōu)化?

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

(6)主從同步;

(7)通過工具訂閱從庫的binlog,這里能夠最準(zhǔn)確的知道,從庫數(shù)據(jù)同步完成的時(shí)間;畫外音:本圖畫的訂閱工具是DTS,可以是cannal,也可以自己訂閱和分析binlog。

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

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

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

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

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

2021-12-30 09:32:04

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

2018-07-15 08:18:44

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

2025-04-08 09:00:00

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

2019-08-07 10:25:41

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

2018-07-08 07:38:28

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

2020-07-20 14:06:38

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

2011-04-26 09:22:05

SQLite

2021-01-19 10:39:03

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

2020-11-08 14:38:35

JavaScript代碼開發(fā)

2023-03-13 07:41:34

分頁查詢數(shù)據(jù)排序

2024-05-11 07:37:43

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

2021-04-18 15:01:56

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

2009-07-23 15:07:32

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

2021-05-27 09:27:35

開發(fā)技能緩存

2020-10-12 09:49:14

C++ 開發(fā)代碼

2018-04-25 10:57:00

AIX報(bào)錯(cuò)vios
點(diǎn)贊
收藏

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

主站蜘蛛池模板: 欧美视频三级 | 欧美日韩亚洲系列 | 黄色大片免费观看 | 久久99精品视频 | 天天综合久久 | .国产精品成人自产拍在线观看6 | 日韩欧美综合在线视频 | 一区二区三区中文字幕 | www.狠狠干 | 免费视频二区 | 97福利在线 | 狠狠操狠狠操 | 久久精品一区二区三区四区 | 在线精品一区 | 成人免费在线电影 | 成人av看片 | 国产精品久久久久久久久久久久 | 欧美日韩一区不卡 | 成人免费片 | 99久久精品国产毛片 | 国产高清在线观看 | 一区二区在线观看免费视频 | 亚洲色图综合 | 水蜜桃亚洲一二三四在线 | 久久久久久九九九九九九 | 色综合网站 | 日本久久网 | 欧美精品乱码99久久影院 | 日韩av一区二区在线观看 | 91精品国产综合久久婷婷香蕉 | 午夜精品久久久久久久星辰影院 | 久久久久91 | 黄色毛片在线看 | 国产偷录视频叫床高潮对白 | 久久精品亚洲国产 | 国产精品久久久久久久久久免费看 | 日本欧美国产在线观看 | 国产三级一区二区三区 | 国产九九精品 | 亚洲精品9999 | 中文字幕欧美一区二区 |