1

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

我在服务器端缓存上不是那么好,所以我的问题是。

  1. 如果我缓存此服务器端,我猜所有用户都将获得缓存的答案,直到缓存释放?

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

  3. 我可以用任何图书馆来实现这一目标?

问候

4

2 回答 2

3

您可以在 .Net Framework 中使用MemoryCache

  1. MemoryCache 存在于进程中,因此所有用户都可以根据需要访问相同的缓存数据(在同一台服务器上)
  2. 保存到缓存时设置过期时间。
  3. 内置在框架中
于 2020-01-03T07:36:13.497 回答
0

感谢您的输入,我的第一次尝试看起来像这样。它似乎工作。请提供反馈

        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)
        }
于 2020-01-03T08:42:24.210 回答