C# 在WebAPI 2中缓存巨大响应
我们有一个90.000行的Json对象,加载它需要5秒钟。我们需要加载所有这些数据,因为需要包括很多关系。幸运的是,这些数据几乎从未更改,因此基本上总是相同的(如果数据更新,它确实需要能够从缓存中弹出) 我不太擅长服务器端缓存,所以我的问题是C# 在WebAPI 2中缓存巨大响应,c#,webapi,C#,Webapi,我们有一个90.000行的Json对象,加载它需要5秒钟。我们需要加载所有这些数据,因为需要包括很多关系。幸运的是,这些数据几乎从未更改,因此基本上总是相同的(如果数据更新,它确实需要能够从缓存中弹出) 我不太擅长服务器端缓存,所以我的问题是 如果我缓存这个服务器端,我想在缓存释放之前,所有用户都会得到缓存的答案 我是否可以在服务器上缓存此响应,直到我告诉api停止缓存此响应?它的罚款持有24小时缓存 有没有我可以用的图书馆 关于可以在.Net Framework中使用的 MemoryCache
谢谢你的输入,我的第一次尝试是这样的。它似乎起作用了。请提供反馈
MemoryCache memoryCache = MemoryCache.Default;
var test = memoryCache.Get("testKey")
if (test != null) {
return Ok(test)
} else {
var data = GetData()
.ToList();
memoryCache.Add("testKey", data, DateTimeOffset.UtcNow.AddDays(1));
return Ok(data)
}
谢谢你的输入,我的第一次尝试是这样的。它似乎起作用了。请提供反馈
MemoryCache memoryCache = MemoryCache.Default;
var test = memoryCache.Get("testKey")
if (test != null) {
return Ok(test)
} else {
var data = GetData()
.ToList();
memoryCache.Add("testKey", data, DateTimeOffset.UtcNow.AddDays(1));
return Ok(data)
}
我使用LazyCache,它为MemoryCache添加了一些铃铛和口哨,非常好的输入!我在下面提供了一个例子。任何反馈都会很好,我使用LazyCache,它为MemoryCache添加了一些铃铛和口哨,非常好的输入!我在下面提供了一个例子。任何反馈都会很好,因为我已经围绕它创建了一个包装类(“CacheHelper”),并且我还为CacheKey使用了常量。我也使用Set方法而不是Add,但是当您使用它时,应该不会有任何区别,请阅读更多内容:您的代码看起来不错。但是,缓存返回类型为
object
的项,因此您可能必须将该项强制转换为正确的类型。例如:var test=memoryCache.Get(“testKey”)作为您的类型代码>我已经围绕它创建了一个包装类(“CacheHelper”),并且我还为CacheKey使用了常量。我也使用Set方法而不是Add,但是当您使用它时,应该不会有任何区别,请阅读更多内容:您的代码看起来不错。但是,缓存返回类型为object
的项,因此您可能必须将该项强制转换为正确的类型。例如:var test=memoryCache.Get(“testKey”)作为您的类型
您也可以在本文中找到参考资料。它有很好的例子,你也可以在本文中参考。它有很好的例子