Woj*_*tek 4 .net c# caching polling memorycache
在我的应用程序中,我使用MemoryCache,但是我不希望项目过期。因此项目被插入到与默认策略缓存,没有AbsoulteExpiration或者SlidingExpiration被设置。
最近,在最后一台高服务器上,我遇到了缓存问题,因为它返回空值代替期望值,并在之前插入到缓存中。事实证明,不仅合格的项目(如明确设置了到期日期的项目)都从缓存中删除。在内存压力下,超过CacheMemoryLimit和/或值时PhysicalMemoryLimit,MemoryCache也会删除其他元素。
如何预防呢?如何确保将元素设置为一次缓存后,可以再次从中安全地获取它?
我考虑过将设置PollingInterval为某个巨大的值,但这只会延迟潜在的问题(并且轮询间隔在文档中被称为最大时间,而不是确切时间或最小时间)。设置PhysicalMemoryLimitPercentage为100%并不能解决问题,因为它引用的是物理安装的内存,而不是整个可用虚拟内存。还是我错了,这确实会有所帮助吗?