在网络中缓存大量响应 api 2

Cache huge response in web api 2

我们有这个 90.000 行 Json 对象,需要 5 秒才能加载。我们需要加载所有这些数据,因为需要包含很多关系。幸运的是,这些数据几乎从不改变,所以它基本上总是一样的(如果数据更新,它确实需要能够从缓存中取出)

我不太擅长服务器端缓存,所以我的问题是。

  1. 如果我缓存此服务器端,我想所有用户都将收到缓存的答案,直到缓存释放为止?

  2. 我可以在服务器上缓存这个响应直到我以某种方式告诉 api 停止缓存这个吗?保持24小时缓存就可以了

  3. 我可以用任何库来实现这个目标吗?

此致

您可以在 .Net Framework

中使用 MemoryCache
  1. MemoryCache 位于进程中,因此如果您愿意,所有用户都可以访问相同的缓存数据(在同一台服务器上)
  2. 您在保存到缓存时设置过期时间。
  3. 内置于框架中

感谢您的意见,我的第一次尝试是这样的。它似乎工作。请提供反馈

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