2010-05-26 85 views
1

我使用HttpRuntime緩存來存儲對象列表,並在我們當前的項目中指定對象應該被緩存到午夜,所以我使用DateTime.Today.AddHours(24)來設置絕對過期日期到午夜。緩存絕對過期是否保證緩存在確切時間被刪除?

例如,如果今天是5月26日,則絕對到期時間將設置爲5月27日0:00。

但不知何故,當我改變我的電腦的時鐘,對象仍然在緩存中。我應該稍等一下(CacheItemPriority設置爲「正常」)嗎?我忘記了什麼嗎?

謝謝

+0

感謝您的回答,但我已經知道了。忘記清理,因爲在這種情況下,我將CacheItemPriority設置爲NotRemove。 當緩存到期的時候,在這種情況下是在午夜,是否會在午夜過期,或者我希望在一分鐘後刪除它? – 2010-05-26 15:26:01

回答

2

它並不能保證緩存將在確切的時間過期。有些情況會導致系統內存不足,導致緩存過期。所以,不要以爲你以後放在緩存裏的東西 - 總是先檢查一下。

2

ASP.NET可以從高速緩存的這些原因之一刪除數據:

  • 因爲在服務器上存儲低, 稱爲掃氣過程。

  • 因爲緩存中的項目已經過期
    已過期。

  • 因爲該項目的依賴關係
    的變化。

  • 爲了幫助您管理緩存的項目,當項目從緩存中刪除
    ASP.NET可以通知你
    應用。