99久久久精品免费观看国产,紧身短裙女教师波多野,正在播放暮町ゆう子在线观看,欧美激情综合色综合啪啪五月

千鋒教育-做有情懷、有良心、有品質的職業教育機構

手機站
千鋒教育

千鋒學習站 | 隨時隨地免費學

千鋒教育

掃一掃進入千鋒手機站

領取全套視頻
千鋒教育

關注千鋒學習站小程序
隨時隨地免費學習課程

當前位置:首頁  >  應聘面試  >  Java面試題  > 如何保證Redis緩存與數據庫的同步?你確定不來看看這道高頻面試題

如何保證Redis緩存與數據庫的同步?你確定不來看看這道高頻面試題

來源:千鋒教育
發布人:syq
時間: 2022-10-11 17:24:06 1665480246

  今天小千要給大家分享一道關于數據庫緩存同步的面試題,希望通過這道面試題可以幫助大家搞定面試官。

如何保證Redis緩存與數據庫的同步

  一. 數據緩存

  數據緩存在高并發的系統設計中很常見,因為Redis確實能有效地解決數據庫和磁盤的I/O瓶頸,當一個高并發接口要查詢低頻修改的數據時,我們都建議用Redis實現數據緩存。

  一般的緩存實現思路如下:

50 (1)

  其實緩存的實現思路很簡單,這個思路能保證只有第一次查詢的是數據庫,后續的訪問查詢的都是Redis,這樣不僅提高了接口的訪問效率,還在一定程度上實現了數據庫的讀寫分離。

  那么現在問題來了,如果我們的數據庫數據發生了變化,Redis怎么保證和數據庫里的數據一致呢?這個問題就是我們今天要探討的緩存同步問題。

  二. 緩存同步分析

  緩存同步這個思路相信大家很快就能搞清楚,大概思路如下:

51 (1)

  當我們對業務庫做了修改,我們可以通過同步更新的方式去同步,也可以通過暴力刪除Redis的方式去同步。因為刪除Redis,會再次查詢數據庫的最新數據,這樣就可以達成同步的目的。但不管你使用哪種方式,都會存在一些意想不到的問題,如下:

52 (1)

  先寫數據庫,再更新Redis,上圖中演示了一種極端情況,按照時間軸的發展,數據庫里的最新值是8,但Redis中的最新值是9,并沒有一致。

53 (1)

  如果我們先更新Redis,再寫數據庫,按照時間軸,Redis里的最新值是8 ,數據庫里的最新值是9,還是沒有保持一致。

54 (1)

  先寫數據庫,再刪Redis,這也不行。

  如上圖,當數據庫里的值為9,然后再刪Redis。假如這時有一個讀線程來了,發現Redis數據沒了,這個讀線程立即查詢數據庫,讀到的就是9。然而不巧的是另外一個寫線程將數據庫改為8 ,也就是說數據庫最新為8,結果緩存發生在更新數據庫之后,緩存最新的值就是9,還是不能一致。

55 (1)

  如果我們先刪Redis再寫數據庫,寫線程上來把Redis刪了,讀線程立即讀數據庫,比如讀到的舊數據是8,然后寫線程再改數據庫為9,這時數據庫最新為9,但Redis中的值是8,結果還是不一致。

  三. 緩存同步解決思路

  上面分析了四種情況,它們在極端情況下都不能保證數據庫和Redis的雙寫一致性,那到底為什么不能呢?問題到底出在哪里了,其實原因很簡單,就是我們不能保證數據庫和redis操作的原子性!在我們進行這兩個操作時,總是有別的線程在破壞數據,所以才會出現各種問題,那怎么解決呢?我們先來看看下面的解決思路:

56 (1)

  這個思路大致是這樣的,寫線程只負責改數據庫,不要去參與Redis同步的問題,Redis同步交給一個嚴格順序的pipeline解決。這個pipeline的流程是,當數據庫發生數據變化會立即產生binlog日志,我們可以借助阿里的canal組件去監聽binlog,同時解析binlog,將解析的結果以消息的方式發送給MQ。MQ要保證嚴格順序,再通過消費者去消費消息,將最新的數據覆蓋更新到Redis,到此就能解決緩存的同步。

  現在你對數據庫和Redis緩存的同步問題還有疑惑嗎?如果還有別的問題,請關注我們吧,干貨不斷哦。

tags:
聲明:本站稿件版權均屬千鋒教育所有,未經許可不得擅自轉載。
10年以上業內強師集結,手把手帶你蛻變精英
請您保持通訊暢通,專屬學習老師24小時內將與您1V1溝通
免費領取
今日已有369人領取成功
劉同學 138****2860 剛剛成功領取
王同學 131****2015 剛剛成功領取
張同學 133****4652 剛剛成功領取
李同學 135****8607 剛剛成功領取
楊同學 132****5667 剛剛成功領取
岳同學 134****6652 剛剛成功領取
梁同學 157****2950 剛剛成功領取
劉同學 189****1015 剛剛成功領取
張同學 155****4678 剛剛成功領取
鄒同學 139****2907 剛剛成功領取
董同學 138****2867 剛剛成功領取
周同學 136****3602 剛剛成功領取
相關推薦HOT
主站蜘蛛池模板: 国产女人18一级毛片视频| 免费人成在线观看视频播放| 国产男女无遮挡猛进猛出| 亚洲最大成人网色| 国产馆在线观看免费的| 波多野结衣同性| 国产对白受不了了| 国产精品欧美一区二区三区不卡| 欧美精品亚洲精品日韩专区va| 欧美日韩亚洲视频| 波多野结衣波多野结衣| 翁虹三级伦理电影大全在线观看| 娇妻之欲海泛舟白丽交换| 老司机福利在线观看| 又黄又爽的视频在线观看| 日本特黄特色aa大片免费| 午夜剧场免费体验| 日本欧美日韩| 一个人免费视频观看在线www| 国产一级在线| 在线日韩三级| 国产精品久久久久久久久电影网 | 你看桌子上都是你流的| 兽皇videos极品另类| 亚洲精品中文字幕乱码三区| a级毛片免费观看在线播放| yy22.tv夜月直播| 美女黄视频免费| 欧美在线不卡| 一二三四在线观看免费高清视频 | 中文国产成人精品久久一区| 好男人在线神马影视www在线观看| 久久精品国产久精国产| 性做久久久久久久久| 欧美一级免费观看| 丝瓜草莓www在线观看| 桃花综合久久久久久久久久网 | 成人午夜小视频| 欧美日韩一区二区三区自拍| 无翼乌全彩里番蛇姬本子| 久久99国产视频|