【发布时间】:2016-09-26 12:17:44
【问题描述】:
我正在开发一个 ASP.NET MVC 项目。在我的项目中,我正在对一些数据进行内存缓存以获得更好的性能。我对内存缓存的理解是它在服务器上缓存数据,所以无论客户端是谁,在下一个请求中,它从缓存而不是从数据库加载数据,然后发送回客户端。我在 ASP.NET MVC 5 中进行内存缓存,但它不起作用。
这是我正在缓存的 GetRegions 方法:
public IEnumerable<Region> GetRegions(){
ObjectCache cache = MemoryCache.Default;
if(cache.Get("regions")==null)
{
IEnumerable<Region> regions = db.Regions;
cache.Add("regions", regions, DateTime.Now.AddDays(1));
return regions;
}
else
{
IEnumerable<Region> regions = (IEnumerable<Region>)cache.Get("regions");
return regions;
}
}
根据上面的代码,在第一个请求中cache.Get("regions") 将是空的。但在第二个请求中,它不应该为空。但每当我访问该方法时,cache.Get("regions") 始终为空。我在内存缓存中的做法是否正确?
【问题讨论】:
标签: asp.net-mvc caching memorycache