【发布时间】:2020-03-16 18:54:48
【问题描述】:
我有一个 ASP.NET Core 3.0 应用程序。在配置服务的 Startup.cs 中,我添加了以下行:
services.AddDistributedMemoryCache();
我正在使用分布式内存缓存来进行一些轻量级缓存。但是我确实对缓存到期有疑问 - 这是我在这种情况下在缓存中设置“Foo”5分钟的代码:
_cache.SetString(cacheKey, "Foo", new DistributedCacheEntryOptions() { AbsoluteExpiration = DateTimeOffset.UtcNow.AddMinutes(5) });
我的问题是关于我正在使用的 AbsoluteExpiration:
例如,如果我在伦敦有 2 台服务器,数据会在缓存中保存 5 分钟
如果我在芝加哥有两台服务器,数据会在缓存中保存 5 小时 5 分钟
如果我在伦敦和芝加哥有服务器,一个是 5 分钟,另一个是 5 小时,另一个是 5 分钟
*注意 - 为了简单起见,我假设前两个请求同时访问了网络场中的两台服务器,因此在两台服务器中都设置了缓存数据
我应该只使用DateTimeOffset.Now 而不是DateTimeOffset.UtcNow
【问题讨论】:
-
使用 DateTimeOffset.UtcNow.
-
@WilliamXifaras - 你能解释一下为什么吗?
标签: c# .net asp.net-core caching