MemoryCache 过期值.NET

MemoryCache expiration value .NET

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

var memoryCache = MemoryCache.Default;

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

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

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

提前感谢您的帮助。

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

A cache entry that is inserted into the cache with the NoSlidingExpiration field value set as the expiration value should never be evicted because of non-activity in a sliding time window.

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

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

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