我正在玩弄有關使用.NET緩存的大部分信息。從.NET緩存獲取大部分信息
隨着Cache
對象,我們可以獲取3個參數
Count
EffectivePercentagePhysicalMemoryLimit
EffectivePrivateBytesLimit
但所有其餘的怎麼樣?
我在哪裏可以得到信息,諸如「在服務器可用內存」,「使用高速緩存存儲器」,等等...
有一個老項目ASP Allience稱爲緩存管理器,但它沒有不再可用,所有我能找到的是它的一個形象,如果它確實顯示正是這一點:
我一直在尋找在文檔和閱讀有關新的.NET 4項在System.Runtime.Cache
像CacheMemoryLimit
一個d PhysicalMemoryLimit但我找不到如何使用它的真實示例...
有沒有人有緩存信息的包裝?或任何想法如何使用這種新的方法?
我目前的緩存實現是:
public class InMemoryCache : ICacheService
{
private int minutes = 15;
public T Get<T>(string cacheID, Func<T> getItemCallback) where T : class
{
T item = HttpRuntime.Cache.Get(cacheID) as T;
if (item == null)
{
item = getItemCallback();
HttpRuntime.Cache.Insert(
cacheID,
item,
null,
DateTime.Now.AddMinutes(minutes),
System.Web.Caching.Cache.NoSlidingExpiration);
}
return item;
}
public void Clear()
{
IDictionaryEnumerator enumerator = HttpRuntime.Cache.GetEnumerator();
while (enumerator.MoveNext())
HttpRuntime.Cache.Remove(enumerator.Key.ToString());
}
public Dictionary<string, string> Stats()
{
var cache = HttpRuntime.Cache;
var r = new Dictionary<string, string>();
r.Add("Count", cache.Count.ToString());
r.Add("EffectivePercentagePhysicalMemoryLimit", cache.EffectivePercentagePhysicalMemoryLimit.ToString());
r.Add("EffectivePrivateBytesLimit", cache.EffectivePrivateBytesLimit.ToString());
return r;
}
}