五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

mysql和redis雙寫(xiě)一致性問(wèn)題

2023-03-02 21:06 作者:風(fēng)格星辰  | 我要投稿

今天閱讀了一下關(guān)于mysql和redis雙寫(xiě)一致性問(wèn)題的幾個(gè)回答。整理下自己的理解

首先要先了解什么是一致性

強(qiáng)一致性:寫(xiě)入什么,讀取就是什么

弱一致性:寫(xiě)入之后,經(jīng)過(guò)一定時(shí)間級(jí)別,數(shù)據(jù)達(dá)到一致

最終一致性:弱一致性的特例,在一定時(shí)間內(nèi)達(dá)到一致

由于CAP原理即一致性,可用性和分區(qū)容錯(cuò)性無(wú)法同時(shí)滿足,在同時(shí)使用mysql和redis的情況下,為了保證可用性和分區(qū)容錯(cuò)性(mysql和redis可能在不同機(jī)器)

所以我們常常會(huì)使用BASE來(lái)保證最終一致性。

那么如何實(shí)現(xiàn)呢

根據(jù)操作順序以及操作緩存的方式,刪除還是更新。將情況分成4種

1、先寫(xiě)緩存、再寫(xiě)數(shù)據(jù)庫(kù)

2、先寫(xiě)數(shù)據(jù)庫(kù)、再寫(xiě)緩存

3、先刪緩存,再寫(xiě)數(shù)據(jù)庫(kù)

4、先寫(xiě)數(shù)據(jù)庫(kù),再刪緩存


1、先寫(xiě)緩存、再寫(xiě)數(shù)據(jù)庫(kù)

寫(xiě)入緩存成功,但是寫(xiě)入數(shù)據(jù)庫(kù)失敗會(huì)導(dǎo)致數(shù)據(jù)庫(kù)存在臟數(shù)據(jù)

最終是要用數(shù)據(jù)庫(kù)做持久化的,所以這種方式問(wèn)題很大。

2、先寫(xiě)數(shù)據(jù)庫(kù)、再寫(xiě)緩存

為什么使用刪除緩存替代更新緩存

1、更新緩存可能失敗

2、并發(fā)場(chǎng)景下可能存舊數(shù)據(jù)

3、浪費(fèi)性能

一、1、A更新數(shù)據(jù)庫(kù)。2、A更新緩存。3、B更新數(shù)據(jù)庫(kù)。4、B更新緩存

二、1、A更新數(shù)據(jù)庫(kù)。2、B更新數(shù)據(jù)庫(kù)。3、A更新緩存。4、B更新緩存

三、1、A更新數(shù)據(jù)庫(kù)。2、B更新數(shù)據(jù)庫(kù)。3、B更新緩存。4、A更新緩存

一、二、更新緩存可能失敗

三 緩存存的是舊值是臟數(shù)據(jù)

寫(xiě)入的緩存需要復(fù)雜計(jì)算,更新頻率太高,浪費(fèi)性能

讀多寫(xiě)少的場(chǎng)景,數(shù)據(jù)沒(méi)被讀入就更新了。浪費(fèi)性能。寫(xiě)多場(chǎng)景不需要緩存

所以使用刪除緩存來(lái)替代更新緩存


3、先刪緩存,再寫(xiě)數(shù)據(jù)庫(kù)

1、A刪除緩存。2、B查詢緩存。3、B讀數(shù)據(jù)庫(kù)更新緩存。4、A寫(xiě)數(shù)據(jù)庫(kù)

也是會(huì)導(dǎo)致緩存存在臟數(shù)據(jù)

緩存延時(shí)雙刪

寫(xiě)請(qǐng)求-刪除緩存-更新數(shù)據(jù)庫(kù)-一段時(shí)間后,刪除緩存

最后的刪除緩存操作是為了確保讀請(qǐng)求結(jié)束后,寫(xiě)請(qǐng)求可以刪除

讀請(qǐng)求帶來(lái)的臟數(shù)據(jù)

為啥要延時(shí),刪除太快,可能導(dǎo)致在寫(xiě)入緩存前刪除了,那就沒(méi)意義了

4、先寫(xiě)數(shù)據(jù)庫(kù)、再刪緩存

緩存到期被刪除后,A查詢數(shù)據(jù)庫(kù),來(lái)不及更新緩存。B寫(xiě)數(shù)據(jù)庫(kù)并刪除

緩存。A此時(shí)才寫(xiě)入緩存。此時(shí)緩存的是舊數(shù)據(jù)

需要滿足緩存到期并且讀請(qǐng)求更新緩存時(shí)間比寫(xiě)請(qǐng)求刪除緩存還長(zhǎng)(比較罕見(jiàn))

處理刪除緩存失敗

1、重試機(jī)制 通過(guò)寫(xiě)入表用定時(shí)任務(wù)重試,重試超過(guò)一定次數(shù),人工介入

2、失敗后發(fā)送mq消息,mq消費(fèi)者實(shí)現(xiàn)重試,重試超過(guò)一定次數(shù),進(jìn)入死信隊(duì)列。

3、訂閱binlog加上mq重試機(jī)制

所以一般都使用延時(shí)雙刪的策略配合binlog訂閱加mq重試解決一致性問(wèn)題


mysql和redis雙寫(xiě)一致性問(wèn)題的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
黄大仙区| 黄龙县| 都兰县| 东平县| 绥江县| 永定县| 固镇县| 晋州市| 尉氏县| 沭阳县| 灵石县| 新和县| 加查县| 驻马店市| 祁门县| 会泽县| 五指山市| 郎溪县| 灵川县| 马鞍山市| 松桃| 那坡县| 丰镇市| 罗平县| 黔东| 醴陵市| 和顺县| 建德市| 汶上县| 白银市| 泰安市| 鄄城县| 驻马店市| 安乡县| 沙田区| 兰溪市| 慈溪市| 塔河县| 晴隆县| 武强县| 太仓市|