簡體   English   中英

緩存在C#中存儲字典的最佳方法

[英]Best way to cache store a dictionary in c#

我正在編寫類別的導航結構。 每個類別都有一個ID,該ID位於第3方搜索工具中。 無論是在應用啟動時,還是在不同的時間間隔中,我都需要獲取分類及其ID,並將它們存儲在字典中(或以其他方式),以便我可以訪問它們以進行從ID到名稱的鏈接重寫。

使用類似於以下格式的數據將字典存儲在XML文件中,並在需要重寫時將其讀取

<nodes>
<node id="1">Some Nav Data</node>
</nodes>

然后,您有2個選項,編寫一個單獨的進程,該進程將以特定的間隔更新文件,或者您當前的進程可以在設置的間隔后更新文件。

如果您認為加載和解析XML是過分的,請考慮將類序列化到包含簡單哈希表或字典的磁盤。

您在談論幾個定調子? 為什么需要緩存,而不僅僅是使用帶有后台線程的內存字典來定期重新加載它?

如果需要緩存,則可以查看EntLib中的緩存應用程序塊 您可以設置一個有效期限,然后處理一個有效期限,以重新填充緩存。 但是坦率地說,這聽起來太誇張了。

緩存是一個很大的話題! 如果您在Web項目中,則可以使用本地緩存。 如果您在Windows環境中,則可以使用HttpContext.Current.Cache(盡管您實際上並不需要Windows應用程序中的緩存)。 如果跨多個Web服務器,則可能需要使用MemCached或MemCached Win32的強大功能。 如果您不介意使用新的東西,您還可以看看Velocity(這是MS過去幾年在緩存領域對MemCache優越性的回答)。

以下是一些您可能會感興趣的帖子:

System.Web.Caching與企業庫緩存塊

使用MS SQL Server運行Asp.net網站-我何時應該擔心可擴展性?

暫無
暫無

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

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