2011-02-16 52 views
2

考慮基本的緩存方法:在緩存中查找密鑰,如果不在緩存中,則從主持久性存儲中取回密鑰。如果緩存滿了其他值或者TTL通過,則該值到期。這種類型的緩存方案是否有名字?

現在,考慮緩存的略微替代版本:您查找關鍵,如果它不在那裏,你必須得到它,這裏沒有新東西。但是如果你查找一個關鍵字並且由於TTL而導致該值已經過期,但是你會返回該失效值並異步更新該值,以便下一個請求已經看到一個新值(並分別重置TTL)?

這個緩存方案是否有名字?它有什麼缺點我們錯過了嗎?

+0

它是一種延長生命期/提早刷新的LRU。 (不是在TTL達到0時更新值,而是用TTL + x代替輸入條目,並在TTL達到x時更新,最後在0消失之前更新) – user611775 2011-02-16 13:38:03

回答

1

我不知道它的名稱,但我們肯定使用了一種方案,其中數據緩存達N分鐘,但在N/2分鐘後,在後臺產生一個線程以更新數據。 B)你不能絕對地等待一個新的計算。如果: A)計算是昂貴的,並且B)你絕對不能等待一個新的計算。

不好: A)你需要在任何時候完全保持最新的信息。 B)計算非常少見。在這種情況下,您的數據可能會比如說已過時。

相關問題