我正在尝试使用Memcached和Enyim客户端测试我的AWS Elasticache节点,但由于某种原因,到期时间似乎超过1小时。
我使用此代码添加了数据:
_client.Store(StoreMode.Set, "testkey", "test", DateTime.Now.AddMinutes(1));
然后我尝试使用
检索数据var data = _client.Get<string>("testkey");
然而,这永远不会检索数据。但是,如果我将到期日期改为61分钟,则会将数据存储1分钟。我用TimeSpan而不是DateTime.Now尝试了这个,但得到了同样的问题。
我还输出了DateTime.Now
值是正确的,我的AWS区域是EU-West,与输出的DateTime.Now
答案 0 :(得分:1)
使用起来会更安全:
_client.Store(StoreMode.Set, "testkey", "test", TimeSpan.FromMinutes(1.0));
这样,您就不会对DateTime和UTC有任何依赖。
答案 1 :(得分:0)
我自己想通了。我并没有真正考虑到UTC,这就是Elasticache实例使用的内容。因此,要解决我的问题,我只需要使用DateTime.UtcNow
而不是DateTime.Now