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

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

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

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

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

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

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

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

cache aside模式

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

先更新DB再失效緩存問題

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

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

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

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

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

read/write through模式

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

read through模式

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

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

write through模式

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

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

write behind caching模式

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

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

幾種模式對

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

標簽:
  • 熱門焦點
  • 鴻蒙OS 4.0公測機型公布:甚至連nova6都支持

    華為全新的HarmonyOS 4.0操作系統將于今天下午正式登場,官方在發布會之前也已經正式給出了可升級的機型產品,這意味著這些機型會率先支持升級享用。這次的HarmonyOS 4.0支持
  • Redmi Buds 4開箱簡評:才199還有降噪 可以無腦入

    在上個月舉辦的Redmi Note11T Pro系列新機發布會上,除了兩款手機新品之外,Redmi還帶來了兩款TWS真無線藍牙耳機產品,Redmi Buds 4和Redmi Buds 4 Pro,此前我們在Redmi Note11T
  • 6月安卓手機性能榜:vivo/iQOO霸占旗艦排行榜前三

    2023年上半年已經正式過去了,我們也迎來了安兔兔V10版本,在新的驍龍8Gen3和天璣9300發布之前,性能榜的榜單大體會以驍龍8Gen2和天璣9200+為主,至于那顆3.36GHz的驍龍8Gen2領先
  • 28個SpringBoot項目中常用注解,日常開發、求職面試不再懵圈

    前言在使用SpringBoot開發中或者在求職面試中都會使用到很多注解或者問到注解相關的知識。本文主要對一些常用的注解進行了總結,同時也會舉出具體例子,供大家學習和參考。注解
  • 谷歌KDD'23工作:如何提升推薦系統Ranking模型訓練穩定性

    谷歌在KDD 2023發表了一篇工作,探索了推薦系統ranking模型的訓練穩定性問題,分析了造成訓練穩定性存在問題的潛在原因,以及現有的一些提升模型穩定性方法的不足,并提出了一種新
  • 三分鐘白話RocketMQ系列—— 如何發送消息

    我們知道RocketMQ主要分為消息 生產、存儲(消息堆積)、消費 三大塊領域。那接下來,我們白話一下,RocketMQ是如何發送消息的,揭秘消息生產全過程。注意,如果白話中不小心提到相關代
  • JVM優化:實戰OutOfMemoryError異常

    一、Java堆溢出堆內存中主要存放對象、數組等,只要不斷地創建這些對象,并且保證 GC Roots 到對象之間有可達路徑來避免垃 圾收集回收機制清除這些對象,當這些對象所占空間超過
  • Temu起訴SHEIN,跨境電商戰事升級

    來源 | 伯虎財經(bohuFN)作者 | 陳平安日前據外媒報道,拼多多旗下跨境電商平臺Temu正對競爭對手SHEIN提起新訴訟,訴狀稱Shein“利用市場支配力量強迫服裝廠商與之簽訂獨家
  • 認真聊聊東方甄選:如何告別低垂的果實

    來源:山核桃作者:財經無忌爆火一年后,俞敏洪和他的東方甄選依舊是頗受外界關心的“網紅”。7月5日至9日,為期5天的東方甄選“甘肅行”首次在自有App內直播,
Top 主站蜘蛛池模板: 锦州市| 兰溪市| 晋中市| 竹北市| 马山县| 思茅市| 高雄县| 富顺县| 谢通门县| 聂拉木县| 昌江| 喀喇| 武邑县| 瓦房店市| 蒲江县| 平遥县| 若尔盖县| 峨边| 进贤县| 安龙县| 嵊州市| 巴中市| 东平县| 酒泉市| 东莞市| 绍兴县| 合肥市| 教育| 修水县| 增城市| 怀化市| 十堰市| 南郑县| 正定县| 白山市| 东阿县| 芜湖市| 乾安县| 和平县| 仙桃市| 定兴县|