2014-03-07 85 views
1

我正在開發一個相當大的項目。有兩種情況我需要處理

1. API調用的某些值,如API調用的BaseURL,從DB中獲取一次,並在解決方案的多個位置(在不同的類中)重新分配。

2.某些值使用API​​調用,有時可能會更改,所以我需要有時調用API調用以刷新這些值,然後重新調用。

我現在的情況1的解決方案是create a staic constructor,它從DB中取一次值並重用。這是一個好的解決方案嗎?這種情況下的最佳做法是什麼?我該如何處理案例2?這種「緩存」的最佳做法是什麼?在大型項目中緩存值的最佳做法

回答

0

創建一個名爲CachedDataAccessor的靜態類並在其中實現以下行爲。

  1. GetCachedData(),將返回API密鑰,中網址的情況下,存儲第一時間就從DB
  2. RefreshCachedData()獲取的數據,以刷新過期的值,並從數據庫獲取它們的副本。 此後,您還可以實施CacheSize以允許配置緩存的大小。

每一次你需要的數據時,從CacheAccessor

0

把它拿來看一看the classes in system.runtime.cahching

對於這兩種情況下,你可以使用的MemoryCache對象。

在第一種情況下,您可以將CacheItemPolicy的SlidingExpiration設置爲一個小時左右,所以當它被命中時它不會從緩存中刪除。

在第二種情況下,如果您想緩存數據一段時間,您可以將AbsoluteExpiration設置爲該時間。

如果您知道何時需要清除緩存的條件,則可以創建一個更改監視器,用於在緩存中的數據無效時清除緩存項。

相關問題