最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(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ó)家法律
常宁市| 宝丰县| 江阴市| 海兴县| 新田县| 若羌县| 屏边| 当雄县| 凉城县| 进贤县| 黄山市| 台州市| 辛集市| 衢州市| 兴城市| 临江市| 德州市| 理塘县| 贵州省| 精河县| 利川市| 兴山县| 东光县| 翼城县| 紫云| 雅安市| 兴海县| 阿图什市| 简阳市| 东兴市| 武城县| 汝城县| 莒南县| 阿鲁科尔沁旗| 繁昌县| 西充县| 商河县| 元谋县| 襄城县| 垣曲县| 大新县|