没有过期的HttpContext.Current.Cache

本文关键字:Current Cache HttpContext 过期 | 更新日期: 2023-09-27 18:03:10

您认为像这样不过期地缓存对象是一种好的做法吗?

HttpContext.Current.Cache.Insert(
    key,
    value,
    null,
    System.Web.Caching.Cache.NoAbsoluteExpiration,
    System.Web.Caching.Cache.NoSlidingExpiration);

当我从数据库中得到实体时,我把它放到缓存中,如果对象改变了,我就删除缓存项。我不需要过期,我认为这对性能有好处。

没有过期的HttpContext.Current.Cache

如果您永远不希望项目过期,您可以使用ConcurrentDictionary代替,并将其放在static变量中。它也适用于HttpContext不可用的情况。

但是你永远不能指望一个项目是在缓存(或ConcurrentDictionary),因为IIS回收应用程序池,当它感觉它。