我正在開發一個相當大的項目。有兩種情況我需要處理
1. API調用的某些值,如API調用的BaseURL,從DB中獲取一次,並在解決方案的多個位置(在不同的類中)重新分配。
2.某些值使用API調用,有時可能會更改,所以我需要有時調用API調用以刷新這些值,然後重新調用。
我現在的情況1的解決方案是create a staic constructor
,它從DB中取一次值並重用。這是一個好的解決方案嗎?這種情況下的最佳做法是什麼?我該如何處理案例2?這種「緩存」的最佳做法是什麼?在大型項目中緩存值的最佳做法
1
A
回答
0
創建一個名爲CachedDataAccessor
的靜態類並在其中實現以下行爲。
GetCachedData()
,將返回API密鑰,中網址的情況下,存儲第一時間就從DBRefreshCachedData()
獲取的數據,以刷新過期的值,並從數據庫獲取它們的副本。 此後,您還可以實施CacheSize
以允許配置緩存的大小。
每一次你需要的數據時,從CacheAccessor
0
把它拿來看一看the classes in system.runtime.cahching
對於這兩種情況下,你可以使用的MemoryCache對象。
在第一種情況下,您可以將CacheItemPolicy的SlidingExpiration設置爲一個小時左右,所以當它被命中時它不會從緩存中刪除。
在第二種情況下,如果您想緩存數據一段時間,您可以將AbsoluteExpiration設置爲該時間。
如果您知道何時需要清除緩存的條件,則可以創建一個更改監視器,用於在緩存中的數據無效時清除緩存項。
相關問題
- 1. 將媒體文件存儲在大型Web項目中的最佳做法
- 2. 單個大型SVN項目的最佳做法
- 3. ASP.NET緩存,什麼是最佳做法
- 4. 將對象保存在緩存中的最佳做法
- 5. 從列表框中查找大量項目的最佳做法
- 6. 緩存的最佳做法。避免多餘的緩存?
- 7. 在大型C++項目中處理配置的最佳方法
- 8. 嘗試編輯不存在的項目的最佳做法?
- 9. 參考項目的最佳做法
- 10. 在Rails應用中緩存Facebook朋友的最佳做法?
- 11. 在Android中緩存文件時的最佳做法
- 12. 組織大型ASP.NET MVC2項目中文件的最佳方法?
- 13. 在iOS中清除緩存目錄的最佳做法是什麼?
- 14. Laravel中的大型模型的最佳做法
- 15. 爲項目儲存寶石的最佳做法是什麼?
- 16. 什麼是在Android項目中創建包的最佳做法
- 17. 在.net中引用類庫項目設置的最佳做法
- 18. 在html.erb文件中顯示localStorage項目的最佳做法
- 19. 在一個項目中的最佳做法webapi /網站
- 20. 在Android上緩存圖像的最佳做法是什麼?
- 21. Redis中緩存的最佳expire_in值
- 22. Doxygen在大型多應用COM項目中的最佳設置
- 23. 在另一個項目中使用一個mercurial項目的最佳做法
- 24. 大型項目中進程間通信的最佳和最簡單的方法
- 25. 使用Unity3d在Firebase中存儲DateTime值的最佳做法
- 26. 自己做一個小項目的最佳做法
- 27. 最佳做法在新的web項目上的JavaScript配置
- 28. 存儲大型數值多維數組的最佳方法
- 29. 實現基於文件的緩存的最佳做法
- 30. Java - 做大型GUI項目