我正在使用Windows Azure共享緩存。我遇到了一些問題:windows azure:共享緩存 - 全部刪除?
- 如何知道緩存中存在哪些密鑰?有沒有像
GetAllKeys()
方法? - 可以給
clearAll()
打電話嗎? - 爲什麼我不能使用區域?
謝謝。
我正在使用Windows Azure共享緩存。我遇到了一些問題:windows azure:共享緩存 - 全部刪除?
GetAllKeys()
方法?clearAll()
打電話嗎?謝謝。
本部分適用於Windows Azure的緩存
的Windows Azure提供了兩種類型的緩存模式:
如何知道緩存中有什麼?有沒有像「GetAllKeys()」方法?
您是否需要這些信息爲您的報告/審計更多的應用? 我認爲,微軟並沒有提供這種方法,原因很簡單:它返回的信息可能會在不久後過時。請參閱緩存項目可能隨時過期(取決於將項目添加到緩存的過期時間和時間),因此您將從GetAllKeys()方法收到的信息可能無效秒或甚至毫秒後。
高速緩存使用標準模式將
Null
然後創建一個項目,並把/添加到緩存中同位角色緩存
是否有可能clearAll()?
我不認爲你應該擔心清除緩存。如果您將緩存逐出策略設置爲LRU(Last Recently Used),那麼最近最少使用的項目將首先被丟棄。所以你永遠不會得到任何像「緩存中沒有空間」。
爲什麼我不能使用regoins?
你可以,但只能用高速緩存定位在相同的實例。專用角色緩存不支持它。
此部分適用於Windows Azure的共享緩存
Windows Azure的共享高速緩存是從視圖客戶端點非常相似到Windows Azure緩存(如上所述)和所有的解釋適用於共享緩存也。
物品驅逐有一個小的變化: 在共享緩存中,沒有特定到期時間的物品將在48小時之後過期。但是,您可以添加項目到緩存(通過的Add
和Put
方法的各種重載)有明確的到期時間,如X分鐘或Y天。
如果您超出緩存的大小(高速緩存大小您創建時選擇),緩存服務將啓動「逐出項目」在緩存中,直到內存問題得到解決(你有足夠的內存來添加新的緩存項目)。在「驅逐」 LRU機制用於 - 在緩存中最近最少使用的項目被刪除。
獲取,檢查並重新創建處理緩存項目的方法(上述)也適用於共享緩存。
我希望這將有助於你更好地理解Azure的緩存和共享緩存。
以下方法清除高速緩存中的所有數據。
public static void InvalidateCache(string cacheName)
{
DataCache desiredCache = new DataCache(cacheName);
foreach (string regionName in desiredCache.GetSystemRegions())
{
desiredCache.ClearRegion(regionName);
}
}
非常感謝你! – socksocket
非常歡迎。我忘記補充的一件事是Windows Azure發展非常迅速,在接下來的幾個月裏你可以有很多改進。 – Tom
問題是關於Windows Azure共享緩存。你在這裏描述的是Windows Azure緩存。 –