我在我的MVC3應用程序中使用System.Runtime.Caching MemoryCache來緩存很少更改,但通常訪問的數據。我已經設定了30分鐘的絕對靈感。這很好。每隔30分鐘,應用程序就會使緩存中的數據到期,然後逐出數據。System.Runtime.Caching Absolute Expiration按設計消除數據,但是如何實現非驅逐即將到期的數據策略?
下一次查詢數據時,系統從數據庫重新加載緩存。
但是,如果緩存被驅逐後數據庫暫時不可用會怎麼樣?這將導致無法從MemoryCache或數據庫獲得任何記錄。這將是理想的過期緩存,但不驅逐數據,直到我確信我可以重新加載它。如果我無法重新加載數據庫中的數據,我想通過說... 5分鐘左右來延長緩存的到期時間,然後重試。最終數據庫會回來。
這個策略是我寧願稍微陳舊的數據也沒有數據。
我的問題是我應該如何使用System.Runtime.Caching創建這種緩存策略。我沒有看到一件事讓我能夠在到期時防止驅逐。有任何想法嗎?
感謝您的信息。好東西! – 2013-07-30 02:59:15