首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >MemoryCache中的ASP.NET核心不设置元素并随机执行

MemoryCache中的ASP.NET核心不设置元素并随机执行
EN

Stack Overflow用户
提问于 2022-05-23 07:51:25
回答 1查看 315关注 0票数 0

我使用MemoryCache库在ASP.NET核心项目中创建缓存,遵循Microsoft (https://learn.microsoft.com/en-us/aspnet/core/performance/caching/memory?view=aspnetcore-6.0)。问题是,当缓存满时,我尝试在缓存中添加一个新元素(使用Set()函数),它从缓存中删除一个元素,而不添加新元素。此外,根据库删除缓存中存在的元素的情况还不清楚,它似乎是随机的,而不是基于元素的生命周期。我还尝试用相同的优先级(CacheItemPriority.Normal)设置缓存中的所有元素。我怎样才能解决这个问题?

代码语言:javascript
运行
复制
var calendarCacheEntryOptions = new MemoryCacheEntryOptions()
            .SetSlidingExpiration(TimeSpan.FromSeconds(120))
            .SetAbsoluteExpiration(DateTime.Now.AddSeconds(3600))
            .SetPriority(CacheItemPriority.Normal)
            .SetSize(1);

_calendarCache.Set(id, hashCode, calendarCacheEntryOptions);
EN

回答 1

Stack Overflow用户

发布于 2022-05-26 00:11:39

在同样的链接中,它将接着描述:过期不会发生在后台。没有能够主动扫描缓存中过期项的计时器。缓存中的任何活动(Get、Set、Remove)都可以触发对过期项的后台扫描。您可能希望重新评估您的大小(或如果您完全需要调整大小)或绝对过期值。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72344989

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档