簡體   English   中英

在大型項目中緩存值的最佳實踐

[英]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的靜態類,並在其中實現以下行為。

  1. 會返回API密鑰的GetCachedData()在您的情況下為Urls)在第一次從數據庫中獲取數據時會存儲它的副本
  2. RefreshCachedData()刷新過期的值並從數據庫中獲取它們。 此后,您還可以實現CacheSize以允許配置高速緩存的大小。

每次需要數據時,都可以從CacheAccessor獲取數據

看看system.runtime.cahching的類

對於這兩種情況,您都可以使用MemoryCache對象。

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

在第二種情況下,如果要在特定時間內緩存數據,可以將AbsoluteExpiration設置為該時間。

如果知道何時需要清除緩存的條件,則可以創建一個更改監視器,當緩存中的數據無效時,該監視器將清除兌現項。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM