HttpContext.Current.Cache没有过期

时间:2014-05-13 12:00:01

标签: c# performance caching

如何在没有过期的情况下缓存对象是一种很好的做法,如下所示:

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

当我从数据库中获取实体时,我将其放入缓存中,如果对象已更改,则删除缓存项。而且我不需要过期,我认为这对性能有好处。

1 个答案:

答案 0 :(得分:1)

如果您不希望这些项目过期,您可以使用ConcurrentDictionary代替它并将其放入static变量中。当HttpContext不可用时,它也适用于情景。

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