高并發(fā):緩存模式以及緩存的數(shù)據(jù)一致性
作者 |?stephanie Tang
Cache-Aside
程序需要判斷緩存中是否已經(jīng)存在數(shù)據(jù)。 當(dāng)緩存中已經(jīng)存在數(shù)據(jù)(也就是緩存命中,cache hit),則直接從緩存中返回?cái)?shù)據(jù) 當(dāng)緩存中不存在數(shù)據(jù)(也就是緩存未命中,cache miss),則先從數(shù)據(jù)庫(kù)里讀取數(shù)據(jù),并且存入緩存,然后返回?cái)?shù)據(jù)

更新數(shù)據(jù)庫(kù) 更新緩存
A寫(xiě)數(shù)據(jù)庫(kù) B后于A寫(xiě)數(shù)據(jù)庫(kù) B寫(xiě)緩存 A寫(xiě)緩存 緩存和數(shù)據(jù)庫(kù)中的數(shù)據(jù)不一致,緩存中的是臟數(shù)據(jù)
更新數(shù)據(jù)庫(kù) 刪除緩存中對(duì)應(yīng)的數(shù)據(jù)

那么這種寫(xiě)策略會(huì)有線程安全的問(wèn)題嗎?有,試想一下有兩個(gè)線程,線程A讀,線程B寫(xiě)
A讀數(shù)據(jù),由于未命中那么從數(shù)據(jù)庫(kù)中取數(shù)據(jù) B寫(xiě)數(shù)據(jù)庫(kù) B刪除緩存 A由于網(wǎng)絡(luò)延遲比較慢,將臟數(shù)據(jù)寫(xiě)入緩存
應(yīng)用場(chǎng)景
優(yōu)點(diǎn)
緩存僅僅保存被請(qǐng)求的數(shù)據(jù),屬于懶加載模式(Lazy Loading),和下文的Write-Through模式相比,避免了任何數(shù)據(jù)都被寫(xiě)入緩存造成緩存頻繁的更新。
缺點(diǎn)
當(dāng)發(fā)生緩存未命中的情況時(shí),則會(huì)比較慢,因?yàn)橐?jīng)過(guò)三個(gè)步驟:查詢緩存,從數(shù)據(jù)庫(kù)讀取,寫(xiě)入緩存。 復(fù)雜的邏輯都在應(yīng)用程序中,如果實(shí)現(xiàn)微服務(wù),多個(gè)微服務(wù)中會(huì)有重復(fù)的邏輯代碼
Read-Through/Write-Through
Read-Through


優(yōu)點(diǎn)
緩存不存在臟數(shù)據(jù) 相比較Cache-Aside懶加載模式,讀取速度更高,因?yàn)檩^少因?yàn)榫彺嫖疵卸鴱臄?shù)據(jù)庫(kù)中查找 應(yīng)用程序的邏輯相對(duì)簡(jiǎn)單
缺點(diǎn)
對(duì)于總是寫(xiě)入?yún)s很少被讀取的應(yīng)用,那么Write-Through會(huì)非常浪費(fèi)性能,因?yàn)閿?shù)據(jù)可能更改了很多次,卻沒(méi)有被讀取,白白的每次都寫(xiě)入緩存造成寫(xiě)入延遲。
Write-Back

優(yōu)點(diǎn)
寫(xiě)入和讀取數(shù)據(jù)都非常的快,因?yàn)槎际菑木彺嬷兄苯幼x取和寫(xiě)入。 對(duì)于數(shù)據(jù)庫(kù)不可用的情況有一定的容忍度,即使數(shù)據(jù)庫(kù)暫時(shí)不可用,系統(tǒng)也整體可用,當(dāng)數(shù)據(jù)庫(kù)之后恢復(fù)的時(shí)候,再將數(shù)據(jù)寫(xiě)入數(shù)據(jù)庫(kù)。
缺點(diǎn)
有數(shù)據(jù)丟失的風(fēng)險(xiǎn),如果緩存掛掉而數(shù)據(jù)沒(méi)有及時(shí)寫(xiě)到數(shù)據(jù)庫(kù)中,那么緩存中的有些數(shù)據(jù)將永久的丟失了
Write-Around

優(yōu)點(diǎn)
相比較Write-Through寫(xiě)入的時(shí)候的效率較高,如果數(shù)據(jù)寫(xiě)入后很少被讀取,緩存也不會(huì)被沒(méi)用到的數(shù)據(jù)占滿。
缺點(diǎn)
如果數(shù)據(jù)會(huì)寫(xiě)入多次,那么可能存在緩存和數(shù)據(jù)庫(kù)不一致
- 推薦閱讀 -
《架構(gòu)師離職后,成為自由開(kāi)發(fā)者的第 100 天》
往期推薦
下方二維碼關(guān)注我

互聯(lián)網(wǎng)草根,堅(jiān)持分享技術(shù)、創(chuàng)業(yè)、產(chǎn)品等心得和總結(jié)~

點(diǎn)擊“閱讀原文”,領(lǐng)取 2020 年最新免費(fèi)技術(shù)資料大全
評(píng)論
圖片
表情
