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
});
请注意上面的代码可能无法编译,它只是一个如何使用它的示例。
我正在尝试缓存一些值,我的目标是保留它们直到它们被覆盖。所以基本上它们应该永远不会过期。
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
});
请注意上面的代码可能无法编译,它只是一个如何使用它的示例。