[英]Best practice for caching values in large project
我正在做一個相當大的項目。 我需要處理2種情況
1.一些值,例如API密鑰,用於API調用的BaseURLs,從數據庫中獲取一次,並在解決方案中的多個位置(在不同的類中)重新使用。
2.有些值是使用API調用完成的,有時可能會更改,因此有時我需要進行API調用以刷新這些值,然后繼續。
我現在針對情況1的解決方案是create a staic constructor
,該create a staic constructor
將從DB中獲取一次值並重新使用。 這是一個好的解決方案嗎? 在這種情況下,最佳做法是什么? 以及如何處理案例2? 這種“緩存”的最佳實踐是什么?
創建一個名為CachedDataAccessor
的靜態類,並在其中實現以下行為。
GetCachedData()
在您的情況下為Urls)在第一次從數據庫中獲取數據時會存儲它的副本 RefreshCachedData()
刷新過期的值並從數據庫中獲取它們。 此后,您還可以實現CacheSize
以允許配置高速緩存的大小。 每次需要數據時,都可以從CacheAccessor
獲取數據
對於這兩種情況,您都可以使用MemoryCache對象。
在第一種情況下,您可以將CacheItemPolicy的SlidingExpiration設置為一個小時左右,因此當它被命中時不會從緩存中刪除。
在第二種情況下,如果要在特定時間內緩存數據,可以將AbsoluteExpiration設置為該時間。
如果知道何時需要清除緩存的條件,則可以創建一個更改監視器,當緩存中的數據無效時,該監視器將清除兌現項。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.