內容:記錄快取的幾種讀寫策略
一、cache aside(旁路快取)
解決問題:
寫入順序的不同造成資料的不一致,直接更新快取還存在另外乙個問題就是丟失更新。還是以金融系統為例,
假如系統中的賬戶表:id、金額。當更新快取中賬戶金額時,你需要從快取中查詢完整的賬戶資料,把金額
變更後再寫入到快取中。比如說原有金額是100萬,a 請求從快取中讀到資料,並且把金額加10萬,變更成
110萬,在未寫入快取之前又有請求 b 也讀到快取的資料100萬,然後把金額也加 10萬,也變更成 110萬,
兩個請求同時把金額寫回快取,這時快取裡面的金額是 110萬,但是我們實際上預期是金額是120萬,造成
快取資料和
資料庫資料不一致。
解決方法:
更新資料時不更新快取,而是刪除快取中的資料;
在讀取資料時,發現快取中沒了資料之後,再從資料庫中讀取資料,更新到快取中。
其中讀策略的步驟是:
1、從快取中讀取資料;
hdfs的讀寫策略
讀資料過程 1.客戶端呼叫filesystem 例項的open 方法,獲得這個檔案對應的輸入流inputstream 2.訪問namenode,獲取檔案對應資料塊的儲存位置,包括副本位置。3.獲得輸入流之後,客戶端便呼叫read 方法讀取資料。選擇最近的datanode進行連線並讀取資料。4.如果客...
讀寫鎖應用到快取更新策略
我們知道,redis是乙個nosql資料庫,由於其資料都放在記憶體中,常常用來做快取。redis用作快取,肯定要和資料庫打交道。當然redis的應用場景還有很多,不光只用作快取。在讀取快取方面,都是按照下圖的流程來進行業務操作。但兄弟們有沒有想過如果資料庫中資料修改了,那麼快取的更新策略是什麼樣呢?...
glide的快取策略
本文主要介紹了如何配置和管理glide中的快取,其中大部分內容都可以直接在官方wiki中找到,這裡只是進行了整理和彙總。言歸正傳,glide支援的二級快取 並不是 快取,因為從網路載入並不屬於快取 即記憶體快取和磁碟快取。磁碟快取 一般的快取指的就是磁碟快取,把網路上的快取到本地,這樣就不需要每次都...