AVt天堂网 手机版,亚洲va久久久噜噜噜久久4399,天天综合亚洲色在线精品,亚洲一级Av无码毛片久久精品

當(dāng)前位置:首頁 > 科技  > 軟件

高并發(fā)緩存策略大揭秘:面試必備的緩存更新模式解析

來源: 責(zé)編: 時(shí)間:2024-03-18 09:42:30 185觀看
導(dǎo)讀在高并發(fā)場景中,緩存能抵擋大量數(shù)據(jù)庫查詢,減少數(shù)據(jù)庫壓力,對(duì)于緩存更新通常有以下幾種模式可以選擇:? cache aside? read/write through? write behind cachingcache aside模式Cache-aside模式是一種常用的用于管理緩

在高并發(fā)場景中,緩存能抵擋大量數(shù)據(jù)庫查詢,減少數(shù)據(jù)庫壓力,對(duì)于緩存更新通常有以下幾種模式可以選擇:ItF28資訊網(wǎng)——每日最新資訊28at.com

? cache asideItF28資訊網(wǎng)——每日最新資訊28at.com

? read/write throughItF28資訊網(wǎng)——每日最新資訊28at.com

? write behind cachingItF28資訊網(wǎng)——每日最新資訊28at.com

cache aside模式

Cache-aside模式是一種常用的用于管理緩存的模式。它用于確保緩存與底層數(shù)據(jù)源之間的數(shù)據(jù)一致性。以下是cache-aside模式的工作原理:ItF28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片ItF28資訊網(wǎng)——每日最新資訊28at.com

1. 從緩存讀取:當(dāng)有讀取操作請(qǐng)求時(shí),應(yīng)用程序首先檢查緩存中是否存在數(shù)據(jù)。如果在緩存中找到了數(shù)據(jù),則將其返回給調(diào)用者,避免了訪問底層數(shù)據(jù)源的需要。ItF28資訊網(wǎng)——每日最新資訊28at.com

2. 緩存未命中:如果在緩存中未找到數(shù)據(jù),則表示緩存未命中。在這種情況下,應(yīng)用程序從底層數(shù)據(jù)源檢索數(shù)據(jù),并將檢索到的數(shù)據(jù)填充到緩存中。ItF28資訊網(wǎng)——每日最新資訊28at.com

3. 更新數(shù)據(jù):當(dāng)對(duì)數(shù)據(jù)執(zhí)行寫入或更新操作時(shí),應(yīng)用程序首先更新底層數(shù)據(jù)源中的數(shù)據(jù)。然后,清除緩存中的數(shù)據(jù),以確保下一次讀取從數(shù)據(jù)源中檢索到更新后的數(shù)據(jù)。ItF28資訊網(wǎng)——每日最新資訊28at.com

通常寫緩存和寫數(shù)據(jù)庫是兩個(gè)獨(dú)立的事務(wù),選擇先更新緩存還是先更新數(shù)據(jù)庫都有可能產(chǎn)生數(shù)據(jù)不一致的情況。ItF28資訊網(wǎng)——每日最新資訊28at.com

先刪緩存,再更新數(shù)據(jù)庫的問題

假設(shè)有兩個(gè)請(qǐng)求A、B。ItF28資訊網(wǎng)——每日最新資訊28at.com

? 請(qǐng)求A先刪除緩存,此時(shí)還未更新數(shù)據(jù)庫ItF28資訊網(wǎng)——每日最新資訊28at.com

? 請(qǐng)求B查詢緩存未命中,然后查詢數(shù)據(jù)庫,查出舊數(shù)據(jù)寫入緩存ItF28資訊網(wǎng)——每日最新資訊28at.com

? 請(qǐng)求A繼續(xù)將數(shù)據(jù)寫入數(shù)據(jù)庫ItF28資訊網(wǎng)——每日最新資訊28at.com

? 此時(shí)緩存與數(shù)據(jù)庫中的數(shù)據(jù)出現(xiàn)了不一致的情況ItF28資訊網(wǎng)——每日最新資訊28at.com

ItF28資訊網(wǎng)——每日最新資訊28at.com

將緩存更新不做刪除的問題

? 請(qǐng)求A先更新了數(shù)據(jù)庫ItF28資訊網(wǎng)——每日最新資訊28at.com

? 請(qǐng)求B更新了數(shù)據(jù)庫,并更新了緩存ItF28資訊網(wǎng)——每日最新資訊28at.com

? 請(qǐng)求A最后更新緩存,此時(shí)請(qǐng)求A的數(shù)據(jù)是臟數(shù)據(jù)。ItF28資訊網(wǎng)——每日最新資訊28at.com

ItF28資訊網(wǎng)——每日最新資訊28at.com

先更新DB再失效緩存問題

先更新DB,再失效緩存也會(huì)出現(xiàn)問題。ItF28資訊網(wǎng)——每日最新資訊28at.com

? 請(qǐng)求A讀取緩存未命中,查詢數(shù)據(jù)庫成功查到數(shù)據(jù)ItF28資訊網(wǎng)——每日最新資訊28at.com

? 請(qǐng)求B進(jìn)來更新數(shù)據(jù)庫成功,并刪除緩存數(shù)據(jù)ItF28資訊網(wǎng)——每日最新資訊28at.com

? 請(qǐng)求A將查詢的數(shù)據(jù)寫入到緩存中,此時(shí)請(qǐng)求A寫入緩存的數(shù)據(jù)已經(jīng)是臟數(shù)據(jù)ItF28資訊網(wǎng)——每日最新資訊28at.com

ItF28資訊網(wǎng)——每日最新資訊28at.com

read/write through模式

cache aside模式需要應(yīng)用方維護(hù)緩存的讀寫,對(duì)數(shù)據(jù)和緩存的維護(hù)設(shè)計(jì)侵入代碼,代碼復(fù)雜性增加。read/write through模式彌補(bǔ)了這一問題,調(diào)用方無需管理緩存和數(shù)據(jù)庫調(diào)用,通過抽象緩存管理組件維護(hù)緩存和數(shù)據(jù)庫的讀寫,解耦業(yè)務(wù)代碼。ItF28資訊網(wǎng)——每日最新資訊28at.com

read through模式

當(dāng)客戶端請(qǐng)求一個(gè)數(shù)據(jù)時(shí),如果緩存中不存在該項(xiàng)(緩存未命中),緩存系統(tǒng)會(huì)自動(dòng)從后端存儲(chǔ)中加載數(shù)據(jù),然后將其添加到緩存中,并返回給客戶端。對(duì)于后續(xù)的相同請(qǐng)求,數(shù)據(jù)則直接從緩存中獲取,直到緩存過期或被淘汰。ItF28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片ItF28資訊網(wǎng)——每日最新資訊28at.com

write through模式

在write-through模式中,當(dāng)客戶端更新一個(gè)數(shù)據(jù)項(xiàng)時(shí),緩存系統(tǒng)會(huì)同時(shí)更新緩存和后端存儲(chǔ)。這意味著所有的寫操作都會(huì)同步地寫入緩存和存儲(chǔ),確保二者的數(shù)據(jù)一致性。ItF28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片ItF28資訊網(wǎng)——每日最新資訊28at.com

write behind caching模式

Write Behind模式和Write Through模式整個(gè)架構(gòu)是一樣的,核心在于write through在緩存數(shù)據(jù)庫中的更新是同步的,而Write Behind是異步的。ItF28資訊網(wǎng)——每日最新資訊28at.com

每次的請(qǐng)求寫都是直接更新緩存然后就成功返回,并沒有同步把數(shù)據(jù)更新到數(shù)據(jù)庫。而把更新到數(shù)據(jù)庫的過程稱為flush,觸發(fā)flush的條件可自定義,如定時(shí)或達(dá)到一定容量閾值時(shí)進(jìn)行flush操作。并且可以實(shí)現(xiàn)批量寫,合并寫等策略,也有效減少了更新數(shù)據(jù)的頻率,這種模式最大的好處就是讀寫響應(yīng)非常快,吞吐量也會(huì)明顯提升。這種模式也有其他的問題,比如數(shù)據(jù)不是強(qiáng)一致性的,因?yàn)榘炎钚碌臄?shù)據(jù)放在緩存里,如果緩存在flush到數(shù)據(jù)庫之前宕機(jī)了就會(huì)丟失數(shù)據(jù),另外實(shí)現(xiàn)也比較復(fù)雜。ItF28資訊網(wǎng)——每日最新資訊28at.com

幾種模式對(duì)

模式ItF28資訊網(wǎng)——每日最新資訊28at.com

優(yōu)點(diǎn)ItF28資訊網(wǎng)——每日最新資訊28at.com

缺點(diǎn)ItF28資訊網(wǎng)——每日最新資訊28at.com

Cache AsideItF28資訊網(wǎng)——每日最新資訊28at.com

實(shí)現(xiàn)比較簡單ItF28資訊網(wǎng)——每日最新資訊28at.com

需要應(yīng)用程序負(fù)責(zé)緩存的讀取和寫入操作,代碼侵入較大ItF28資訊網(wǎng)——每日最新資訊28at.com

Read/Write ThroughItF28資訊網(wǎng)——每日最新資訊28at.com

引入緩存管理組件,緩存和數(shù)據(jù)庫的維護(hù)對(duì)應(yīng)用程序透明;應(yīng)用代碼入侵小,邏輯更清晰ItF28資訊網(wǎng)——每日最新資訊28at.com

引入緩存管理組件,實(shí)現(xiàn)更復(fù)雜ItF28資訊網(wǎng)——每日最新資訊28at.com

Write Behind CachingItF28資訊網(wǎng)——每日最新資訊28at.com

讀寫直接和緩存交互,異步批量更新數(shù)據(jù)ItF28資訊網(wǎng)——每日最新資訊28at.com


ItF28資訊網(wǎng)——每日最新資訊28at.com

本文鏈接:http://www.tebozhan.com/showinfo-26-76545-0.html高并發(fā)緩存策略大揭秘:面試必備的緩存更新模式解析

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。郵件:2376512515@qq.com

上一篇: 垃圾收集器的秘密:深入理解JVM性能調(diào)優(yōu)

下一篇: 2024年最具潛力的十大編程語言:引領(lǐng)未來技術(shù)潮流

標(biāo)簽:
  • 熱門焦點(diǎn)
Top