【问题标题】:MemoryCache expiration value .NETMemoryCache 过期值 .NET
【发布时间】:2019-08-13 11:07:29
【问题描述】:

我正在尝试缓存一些值,我的目标是保留它们直到它们被覆盖。所以基本上它们应该永远不会过期。

var memoryCache = MemoryCache.Default;

if (!memoryCache.Contains("data"))
{
    var timer = DateTimeOffset.UtcNow.AddMinutes(1);
    var data = jsonContent;

    memoryCache.Add("data", data, timer);
}

如何解决过期参数?我读过一些关于CacheItemPolicy 的内容,但我不明白。

提前感谢您的帮助。

【问题讨论】:

    标签: c# .net caching model-view-controller memorycache


    【解决方案1】:

    查看文档,您似乎可以将CacheItemPolicy 对象上的SlidingExpiration 属性设置为NoSlidingExpiration,这似乎表明它不会过期,请参阅here

    将 NoSlidingExpiration 字段值设置为过期值的缓存条目不应因为滑动时间窗口中的非活动而被驱逐。

    因此您可以执行以下操作:

    memoryCache.Add(new CacheItem("data", data), new CacheItemPolicy
    {
        SlidingExpiration = System.Runtime.Caching.NoSlidingExpiration
    });
    

    请注意上面的代码可能无法编译,这只是一个使用示例。

    【讨论】:

      猜你喜欢
      • 2013-06-03
      • 1970-01-01
      • 2018-05-10
      • 1970-01-01
      • 2011-10-16
      • 2014-04-06
      • 1970-01-01
      • 1970-01-01
      • 2012-11-21
      相关资源
      最近更新 更多