Время истечения срока действия Memcache составляет 1 час с использованием AWS Elasticache и клиента Memyached для Enyim.
Я пытаюсь протестировать свои узлы AWS Elasticache, используя Memcached и клиент Enyim, однако по какой-то причине срок действия истекает на 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 - ЕС-Запад, который находится в той же временной зоне, что и выводимый DateTime.Now
2 ответа
Было бы безопаснее использовать:
_client.Store(StoreMode.Set, "testkey", "test", TimeSpan.FromMinutes(1.0));
Таким образом, у вас не будет никаких зависимостей от DateTime и UTC.
Я понял это сам. Я действительно не принял во внимание UTC, и именно это используют экземпляры Elasticache. Поэтому, чтобы исправить мою проблему, мне просто нужно использовать DateTime.UtcNow
скорее, чем DateTime.Now