Время истечения срока действия 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

Другие вопросы по тегам