2013-10-22 28 views
0

我需要爲ASP.NET Web應用程序(一個實例)緩存最少一小時的非常少量的數據。顯然這需要線程安全,所以我可以從我的請求中訪問緩存。ASP.NET Web應用程序的內存緩存

我想這樣做「在過程中」,而不是使用任何外部的東西。

什麼是最簡單的方法來實現呢?

回答

1

您可以使用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"]; 
     } 
    } 
1

使用靜態變量。你可以編寫一個靜態緩存類,包括你的更新邏輯(最多一小時),並將檢索到的數據存儲在靜態成員中。

該類將保留在應用程序池中,直到它被回收爲止。對於您的用例而言,這可能太頻繁或很少。但緩存能力應該足夠公平。

對於線程安全問題,您可以在此類中提供getter方法,並使用lock statement