我使用HttpRuntime緩存來存儲對象列表,並在我們當前的項目中指定對象應該被緩存到午夜,所以我使用DateTime.Today.AddHours(24)來設置絕對過期日期到午夜。緩存絕對過期是否保證緩存在確切時間被刪除?
例如,如果今天是5月26日,則絕對到期時間將設置爲5月27日0:00。
但不知何故,當我改變我的電腦的時鐘,對象仍然在緩存中。我應該稍等一下(CacheItemPriority設置爲「正常」)嗎?我忘記了什麼嗎?
謝謝
我使用HttpRuntime緩存來存儲對象列表,並在我們當前的項目中指定對象應該被緩存到午夜,所以我使用DateTime.Today.AddHours(24)來設置絕對過期日期到午夜。緩存絕對過期是否保證緩存在確切時間被刪除?
例如,如果今天是5月26日,則絕對到期時間將設置爲5月27日0:00。
但不知何故,當我改變我的電腦的時鐘,對象仍然在緩存中。我應該稍等一下(CacheItemPriority設置爲「正常」)嗎?我忘記了什麼嗎?
謝謝
它並不能保證緩存將在確切的時間過期。有些情況會導致系統內存不足,導致緩存過期。所以,不要以爲你以後放在緩存裏的東西 - 總是先檢查一下。
ASP.NET可以從高速緩存的這些原因之一刪除數據:
因爲在服務器上存儲低, 稱爲掃氣過程。
因爲緩存中的項目已經過期
已過期。
因爲該項目的依賴關係
的變化。
爲了幫助您管理緩存的項目,當項目從緩存中刪除
ASP.NET可以通知你
應用。
感謝您的回答,但我已經知道了。忘記清理,因爲在這種情況下,我將CacheItemPriority設置爲NotRemove。 當緩存到期的時候,在這種情況下是在午夜,是否會在午夜過期,或者我希望在一分鐘後刪除它? – 2010-05-26 15:26:01