日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

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

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

在高并發場景中,緩存能抵擋大量數據庫查詢,減少數據庫壓力,對于緩存更新通常有以下幾種模式可以選擇:Iad28資訊網——每日最新資訊28at.com

? cache asideIad28資訊網——每日最新資訊28at.com

? read/write throughIad28資訊網——每日最新資訊28at.com

? write behind cachingIad28資訊網——每日最新資訊28at.com

cache aside模式

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

圖片圖片Iad28資訊網——每日最新資訊28at.com

1. 從緩存讀取:當有讀取操作請求時,應用程序首先檢查緩存中是否存在數據。如果在緩存中找到了數據,則將其返回給調用者,避免了訪問底層數據源的需要。Iad28資訊網——每日最新資訊28at.com

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

3. 更新數據:當對數據執行寫入或更新操作時,應用程序首先更新底層數據源中的數據。然后,清除緩存中的數據,以確保下一次讀取從數據源中檢索到更新后的數據。Iad28資訊網——每日最新資訊28at.com

通常寫緩存和寫數據庫是兩個獨立的事務,選擇先更新緩存還是先更新數據庫都有可能產生數據不一致的情況。Iad28資訊網——每日最新資訊28at.com

先刪緩存,再更新數據庫的問題

假設有兩個請求A、B。Iad28資訊網——每日最新資訊28at.com

? 請求A先刪除緩存,此時還未更新數據庫Iad28資訊網——每日最新資訊28at.com

? 請求B查詢緩存未命中,然后查詢數據庫,查出舊數據寫入緩存Iad28資訊網——每日最新資訊28at.com

? 請求A繼續將數據寫入數據庫Iad28資訊網——每日最新資訊28at.com

? 此時緩存與數據庫中的數據出現了不一致的情況Iad28資訊網——每日最新資訊28at.com

Iad28資訊網——每日最新資訊28at.com

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

? 請求A先更新了數據庫Iad28資訊網——每日最新資訊28at.com

? 請求B更新了數據庫,并更新了緩存Iad28資訊網——每日最新資訊28at.com

? 請求A最后更新緩存,此時請求A的數據是臟數據。Iad28資訊網——每日最新資訊28at.com

Iad28資訊網——每日最新資訊28at.com

先更新DB再失效緩存問題

先更新DB,再失效緩存也會出現問題。Iad28資訊網——每日最新資訊28at.com

? 請求A讀取緩存未命中,查詢數據庫成功查到數據Iad28資訊網——每日最新資訊28at.com

? 請求B進來更新數據庫成功,并刪除緩存數據Iad28資訊網——每日最新資訊28at.com

? 請求A將查詢的數據寫入到緩存中,此時請求A寫入緩存的數據已經是臟數據Iad28資訊網——每日最新資訊28at.com

Iad28資訊網——每日最新資訊28at.com

read/write through模式

cache aside模式需要應用方維護緩存的讀寫,對數據和緩存的維護設計侵入代碼,代碼復雜性增加。read/write through模式彌補了這一問題,調用方無需管理緩存和數據庫調用,通過抽象緩存管理組件維護緩存和數據庫的讀寫,解耦業務代碼。Iad28資訊網——每日最新資訊28at.com

read through模式

當客戶端請求一個數據時,如果緩存中不存在該項(緩存未命中),緩存系統會自動從后端存儲中加載數據,然后將其添加到緩存中,并返回給客戶端。對于后續的相同請求,數據則直接從緩存中獲取,直到緩存過期或被淘汰。Iad28資訊網——每日最新資訊28at.com

圖片圖片Iad28資訊網——每日最新資訊28at.com

write through模式

在write-through模式中,當客戶端更新一個數據項時,緩存系統會同時更新緩存和后端存儲。這意味著所有的寫操作都會同步地寫入緩存和存儲,確保二者的數據一致性。Iad28資訊網——每日最新資訊28at.com

圖片圖片Iad28資訊網——每日最新資訊28at.com

write behind caching模式

Write Behind模式和Write Through模式整個架構是一樣的,核心在于write through在緩存數據庫中的更新是同步的,而Write Behind是異步的。Iad28資訊網——每日最新資訊28at.com

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

幾種模式對

模式Iad28資訊網——每日最新資訊28at.com

優點Iad28資訊網——每日最新資訊28at.com

缺點Iad28資訊網——每日最新資訊28at.com

Cache AsideIad28資訊網——每日最新資訊28at.com

實現比較簡單Iad28資訊網——每日最新資訊28at.com

需要應用程序負責緩存的讀取和寫入操作,代碼侵入較大Iad28資訊網——每日最新資訊28at.com

Read/Write ThroughIad28資訊網——每日最新資訊28at.com

引入緩存管理組件,緩存和數據庫的維護對應用程序透明;應用代碼入侵小,邏輯更清晰Iad28資訊網——每日最新資訊28at.com

引入緩存管理組件,實現更復雜Iad28資訊網——每日最新資訊28at.com

Write Behind CachingIad28資訊網——每日最新資訊28at.com

讀寫直接和緩存交互,異步批量更新數據Iad28資訊網——每日最新資訊28at.com


Iad28資訊網——每日最新資訊28at.com

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

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 垃圾收集器的秘密:深入理解JVM性能調優

下一篇: 2024年最具潛力的十大編程語言:引領未來技術潮流

標簽:
  • 熱門焦點
  • 帥氣純真少年!日本最帥初中生選美冠軍出爐

    日本第一帥哥初一生選美大賽冠軍現已正式出爐,冠軍是來自千葉縣的宗田悠良。日本一直熱衷于各種選美大賽,從“最美JK”起到“最美女星&r
  • 三言兩語說透設計模式的藝術-單例模式

    寫在前面單例模式是一種常用的軟件設計模式,它所創建的對象只有一個實例,且該實例易于被外界訪問。單例對象由于只有一個實例,所以它可以方便地被系統中的其他對象共享,從而減少
  • 如何通過Python線程池實現異步編程?

    線程池的概念和基本原理線程池是一種并發處理機制,它可以在程序啟動時創建一組線程,并將它們置于等待任務的狀態。當任務到達時,線程池中的某個線程會被喚醒并執行任務,執行完任
  • 三萬字盤點 Spring 九大核心基礎功能

    大家好,我是三友~~今天來跟大家聊一聊Spring的9大核心基礎功能。話不多說,先上目錄:圖片友情提示,本文過長,建議收藏,嘿嘿嘿!一、資源管理資源管理是Spring的一個核心的基礎功能,不
  • 新電商三兄弟,“抖快紅”成團!

    來源:價值研究所作 者:Hernanderz 隨著內容電商的概念興起,抖音、快手、小紅書組成的“新電商三兄弟”成為業內一股不可忽視的勢力,給阿里、京東、拼多多帶去了巨大壓
  • ESG的面子與里子

    來源 | 光子星球撰文 | 吳坤諺編輯 | 吳先之三伏大幕拉起,各地高溫預警不絕,但處于厄爾尼諾大“烤”之下的除了眾生,還有各大企業發布的ESG報告。ESG是“環境保
  • 四年持續更迭堅持探索行業無人之境,HarmonyOS 4帶來五大升級多項創新

    除了華為每年新發布的旗艦手機系列,上億花粉更加期待鴻蒙系統每次的跨版本大更新。8月4日,HarmonyOS 4于HDC 2023正式發布,這也是該系統歷經四年的再
  • iQOO Neo8 Pro即將開售:到手價3099元起 安卓性能最強旗艦

    5月23日,iQOO如期舉行了新品發布會,全新的iQOO Neo8系列也正式與大家見面,包含iQOO Neo8和iQOO Neo8 Pro兩個版本,其中標準版搭載高通驍龍8+,而Pro版更
  • 利用職權私自解除被封帳號 Meta開除20多名員工

    11月18日消息,據外媒援引知情人士表示,過去一年時間內,Facebook母公司Meta解雇或處罰了20多名員工以及合同工,指控這些人通過內部系統以不當方式重置用戶帳號,其
Top 主站蜘蛛池模板: 东城区| 盐池县| 双柏县| 呼图壁县| 乳山市| 陕西省| 天津市| 海林市| 汤原县| 宁河县| 宜宾县| 兴义市| 宜丰县| 抚顺市| 日照市| 柘城县| 柯坪县| 克什克腾旗| 元氏县| 海淀区| 高邑县| 和硕县| 南开区| 米泉市| 夏河县| 台南县| 岳普湖县| 厦门市| 平度市| 木兰县| 政和县| 方正县| 赞皇县| 肇庆市| 黑龙江省| 宣恩县| 海安县| 工布江达县| 冕宁县| 乡宁县| 凤庆县|