gpt4 book ai didi

c# - 在 ASP.NET MVC 3 中缓存数据

转载 作者:可可西里 更新时间:2023-11-01 08:24:05 25 4
gpt4 key购买 nike

我有一个 ASP.NET MVC 3 应用程序,它基本上只是一组 Web 服务。这些 Web 服务由一组 Controller 操作公开。每个 Controller 操作都会查询我的数据库。因为我的数据很少改变,而且过时的数据不是问题,所以我想我会实现一些缓存来提高性能。我的目标是:

  1. 永远不要缓存对用户的响应。
  2. 将数据库记录缓存最多 24 小时。如果 24 小时过去了,请再次访问数据库。

这有意义吗?我知道如何防止缓存响应。我只使用以下内容:

HttpContext.Response.Cache.SetCacheability(cacheability)

但是,我不确定如何将我的数据库记录在内存中缓存长达 24 小时。有人对如何执行此操作有任何建议吗?我什至不知道去哪里看。

谢谢

最佳答案

您可以使用 System.Runtime.Caching 命名空间(或 ASP.NET 缓存,但这是较旧的并且只能在 Web 应用程序中使用)。

这是一个示例函数,您可以使用它来环绕当前的数据检索机制。您可以更改 MemoryCache.Add 中的参数来控制它的缓存量,但您在上面请求了 24 小时。

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;
}

如@Bond 所述,如果您正在缓存的数据可能会在 24 小时内更改,您可能还希望考虑使用 SQL 缓存依赖项。如果它是非常静态的,这将按照您的要求进行。

关于c# - 在 ASP.NET MVC 3 中缓存数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11033877/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com