我正在使用 .NET 的 MemoryCache 类在我的应用程序中缓存数据。在大多数应用程序的用例中,绝对和/或滑动过期缓存策略对我的应用程序非常有用。但是,在某些时间段,应用程序可能会启动一个长时间运行的进程,该进程不会更新任何应用程序数据。该过程通常很长,以至于缓存将过期并在此过程中清除缓存的数据,这是我真正希望数据保留在缓存中的时候。有什么方法可以暂时暂停 MemoryCache 的过期和/或清除?
我可以扔掉我所有的物品并一个一个地更改过期策略,但我担心我在缓存中有数十万甚至数百万的物品,这将无法从绩效视角。
一种想法是将项目放回 CacheEntryRemovedCallback 中的缓存中,但这似乎是您在与系统作斗争而不是使用它,并且不是线程安全的。
任何想法,将不胜感激。