缓存绝对到期是否保证在确切时间消除缓存?

时间:2010-05-26 11:42:39

标签: c# caching

我使用HttpRuntime缓存来存储对象列表,在我们当前的项目中指定对象应该缓存到午夜,所以我使用DateTime.Today.AddHours(24)来设置绝对到期约会到午夜。

例如,如果今天是5月26日,则绝对到期时间将设置为5月27日0:00。

但不知何故,当我改变计算机的时钟时,对象仍然在缓存中。我应该等一下(CacheItemPriority设置为Normal)?我忘记了什么吗?

谢谢

2 个答案:

答案 0 :(得分:2)

它不保证缓存将在确切时间过期。存在诸如系统内存不足以导致缓存过期的情况。因此,不要假设您放入缓存中的内容稍后会出现 - 请务必先检查。

答案 1 :(得分:2)

ASP.NET可以出于以下原因之一从缓存中删除数据:

  • 因为服务器上的内存很低, 一个称为清理的过程。

  • 因为缓存中的项目有 过期。

  • 因为项目的依赖性为 变化。

  • 为了帮助您管理缓存的项目,
    ASP.NET可以通知你 删除项目时的应用程序 来自缓存。