use*_*192 12 c# caching asp.net-mvc-3
我有一个ASP.NET MVC 3应用程序,基本上只是一组Web服务.这些Web服务由一组Controller操作公开.每个控制器操作都会查询我的数 因为我的数据很少变化,并且陈旧的数据不是一个问题,我想我会实现一些缓存来提高性能.我的目标是:
那有意义吗?我知道如何防止缓存响应.我只使用以下内容:
HttpContext.Response.Cache.SetCacheability(cacheability)
Run Code Online (Sandbox Code Playgroud)
但是,我不知道如何在内存中缓存我的数据库记录长达24小时.有没有人对如何做到这一点有任何建议?我甚至不确定在哪里看.
谢谢
您可以使用System.Runtime.Caching命名空间(或ASP.NET缓存,但这是较旧的,只能在Web应用程序中使用).
这是一个示例函数,您可以使用它来包装当前的数据检索机制.您可以更改MemoryCache.Add中的参数来控制缓存的数量,但是您要求24h以上.
using System.Runtime.Caching; // At top of file
public IEnumerable<MyDataObject> GetData()
{
IEnumerable<MyDataObject> data = MemoryCache.Default.Get(MYCACHEKEY) as IEnumerable<MyDataObject>;
if (data == null)
{
data = // actually get your data from the database here
MemoryCache.Default.Add(MYCACHEKEY, data, DateTimeOffset.Now.AddHours(24));
}
return data;
}
Run Code Online (Sandbox Code Playgroud)
正如@Bond所提到的,如果您缓存的数据可能在24小时内发生变化,您可能还希望查看使用SQL缓存依赖关系.如果它非常静态,那么这将完成你的要求.
| 归档时间: |
|
| 查看次数: |
9489 次 |
| 最近记录: |