MemoryCache绝对值和内存限制

时间:2015-01-14 02:06:53

标签: c# datetime azure asp.net-mvc-5 memorycache

我正在编写一个MVC 5互联网应用程序,并使用MemoryCache对象来缓存对象。我看到使用MemoryCache.Set方法,可以指定absoluteExpiration

如果我使用以下方式从MemoryCache添加和检索对象,那么absoluteExpiration设置为:

cache['cacheItem'] = testObject;

TestObject testObject = cache['cacheItem'] as TestObject;

此外,在MVC Internet应用程序中使用MemoryCache时,我应该设置可用于MemoryCache的内存量,还是Azure网站的默认实现安全性?

提前致谢。

1 个答案:

答案 0 :(得分:4)

您的代码等同于调用Add,如下所示:

cache.Add("cacheItem", testObject, null);

添加的条目将具有默认的到期时间,该时间是无限的(即,它不会过期)。有关详细信息,请参阅MSDN on CacheItemPolicy.AbsoluteExpiration

回答有关内存使用的问题:(来自CacheMemoryLimitMegabytes属性):

  

默认值为零,表示MemoryCache实例根据计算机上安装的内存量管理自己的内存。

我会说让MemoryCache默认决定使用多少内存是安全的,除非你做的事情非常棒。