我需要爲ASP.NET Web應用程序(一個實例)緩存最少一小時的非常少量的數據。顯然這需要線程安全,所以我可以從我的請求中訪問緩存。ASP.NET Web應用程序的內存緩存
我想這樣做「在過程中」,而不是使用任何外部的東西。
什麼是最簡單的方法來實現呢?
我需要爲ASP.NET Web應用程序(一個實例)緩存最少一小時的非常少量的數據。顯然這需要線程安全,所以我可以從我的請求中訪問緩存。ASP.NET Web應用程序的內存緩存
我想這樣做「在過程中」,而不是使用任何外部的東西。
什麼是最簡單的方法來實現呢?
您可以使用ASP.NET爲您提供的Cache對象。
如果存在,您可以創建一個返回緩存對象的屬性,否則從數據庫中檢索它。
private myClass myProp {
get{
if (Cache["Key1"] == null)
Cache.Add("Key1", "Value 1", null, DateTime.Now.AddMinutes(60), Cache.NoSlidingExpiration, CacheItemPriority.High);
return (myClass)Cache["Key1"];
}
}
使用靜態變量。你可以編寫一個靜態緩存類,包括你的更新邏輯(最多一小時),並將檢索到的數據存儲在靜態成員中。
該類將保留在應用程序池中,直到它被回收爲止。對於您的用例而言,這可能太頻繁或很少。但緩存能力應該足夠公平。
對於線程安全問題,您可以在此類中提供getter方法,並使用lock
statement。