在网络中缓存大量响应 api 2
Cache huge response in web api 2
我们有这个 90.000 行 Json 对象,需要 5 秒才能加载。我们需要加载所有这些数据,因为需要包含很多关系。幸运的是,这些数据几乎从不改变,所以它基本上总是一样的(如果数据更新,它确实需要能够从缓存中取出)
我不太擅长服务器端缓存,所以我的问题是。
如果我缓存此服务器端,我想所有用户都将收到缓存的答案,直到缓存释放为止?
我可以在服务器上缓存这个响应直到我以某种方式告诉 api 停止缓存这个吗?保持24小时缓存就可以了
我可以用任何库来实现这个目标吗?
此致
您可以在 .Net Framework
中使用 MemoryCache
- 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)
}
我们有这个 90.000 行 Json 对象,需要 5 秒才能加载。我们需要加载所有这些数据,因为需要包含很多关系。幸运的是,这些数据几乎从不改变,所以它基本上总是一样的(如果数据更新,它确实需要能够从缓存中取出)
我不太擅长服务器端缓存,所以我的问题是。
如果我缓存此服务器端,我想所有用户都将收到缓存的答案,直到缓存释放为止?
我可以在服务器上缓存这个响应直到我以某种方式告诉 api 停止缓存这个吗?保持24小时缓存就可以了
我可以用任何库来实现这个目标吗?
此致
您可以在 .Net Framework
中使用 MemoryCache- 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)
}