#c# #.net #caching #model-view-controller #memorycache
#c# #.net #кэширование #модель-представление-контроллер #кэш памяти
Вопрос:
Я пытаюсь кэшировать некоторые значения, и моя цель — сохранить их до тех пор, пока они не будут перезаписаны. Таким образом, в принципе, они никогда не должны истекать.
var memoryCache = MemoryCache.Defau<
if (!memoryCache.Contains("data"))
{
var timer = DateTimeOffset.UtcNow.AddMinutes(1);
var data = jsonContent;
memoryCache.Add("data", data, timer);
}
Как я могу обойти параметр истечения срока действия? Я что-то читал о CacheItemPolicy
, но я этого не понял.
Заранее спасибо за любую помощь.
Ответ №1:
Глядя на документацию, кажется, что вы можете установить для SlidingExpiration
свойства CacheItemPolicy
объекта значение NoSlidingExpiration
, которое, по-видимому, указывает на то, что срок его действия не истечет, смотрите здесь
Запись кэша, которая вставлена в кэш со значением поля NoSlidingExpiration, установленным в качестве значения истечения срока действия, никогда не должна удаляться из-за отсутствия активности в скользящем временном окне.
Итак, вы можете сделать что-то вроде следующего:
memoryCache.Add(new CacheItem("data", data), new CacheItemPolicy
{
SlidingExpiration = System.Runtime.Caching.NoSlidingExpiration
});
Пожалуйста, обратите внимание, что приведенный выше код может не компилироваться, это просто пример того, как его использовать.