2013-04-09 34 views
1

我要開始使用Azure的分佈式緩存和整個LocalCache的念來過。但事實上,它可以出去與分佈式緩存同步的,使我不知道,爲什麼我會想使用它,以及如何我可以放心地使用它。何時使用Azure的緩存本地緩存

啓用後,從緩存中檢索集羣項目被存儲在本地客戶機上的內存。這可以提高後續獲取請求的性能,但可能會導致本地緩存版本與緩存集羣中的實際項目之間的數據不一致。

調用DataCache.GetIfNewer是一個選項,以確保獲得最新的版本,但需要,我仍然做分佈式緩存打電話,傳遞,我要檢查的對象,以查看是否兩個版本不同。

我可以用通知無效的LocalCache對象,但是這是一個投票的基礎上,它開闢了以投票期間留下我與陳舊的數據中出現的更新的時機上完成。

那麼,爲什麼我會永遠使用LocalCache,如果有一個理由這樣做,我怎麼放心使用呢?

回答

3

「只有兩種計算機科學堅硬的東西:緩存失效和命名的事情」菲爾 - Karlton

你會使用LocalCache時)的性能是至關重要的b)您不關心檢索到的對象可能是陳舊的。

很多情況下,對象永遠不會過時(例如公共/銀行假期列表),或者當您不太擔心100%是最新的(例如,如果物品有> 1000個庫存單位,使用本地緩存,否則從數據庫重新獲取)。

不要嘗試和無效的本地緩存。如果您需要更多最新的對象,請從羣集中獲取它們。如果您無法容忍不同步的數據,請從數據庫中獲取。緩存始終是一種性能不一致的妥協 - LocalCache比服務器緩存更多,但服務器緩存仍然是一個折衷方案。

+0

謝謝西蒙,這些例子有助於澄清事情。在看我的緩存策略時,我會牢記它們。 – sunil 2013-04-10 10:31:21