在c#中缓存存储字典的最佳方法

时间:2009-08-13 04:55:39

标签: c# caching dictionary

我正在写出一个类别的导航结构。每个类别都有一个ID,位于第三方搜索工具中。无论是应用程序启动,还是以不同的时间间隔,我都需要获取caetegories及其id,并将它们存储在字典中(或其他方式),以便我可以访问它们以便从id到name进行链接重写。

3 个答案:

答案 0 :(得分:1)

使用看起来像这样的格式将Dictionary存储在XML文件中,并在需要重写时读取它

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

然后您有2个选项,编写一个单独的进程,以特定的时间间隔更新文件,或者您当前的进程可以在设置的时间间隔后更新文件。

如果您认为加载和解析XML过度,请考虑将类序列化为包含简单哈希表或字典的磁盘。

答案 1 :(得分:0)

你在说什么?为什么你需要一个缓存而不是只使用带有后台线程的内存中字典来定期重新加载它?

如果您需要缓存,可以查看EntLib中的caching application block。您可以设置到期间隔,然后handle an even on expiry重新填充缓存。但坦率地说,这听起来过于夸张了。

答案 2 :(得分:0)

缓存是一个超级大话题!如果您在Web项目中,则可以使用本地缓存。如果你在Windows环境中,你可以使用HttpContext.Current.Cache(虽然你真的不需要在Windows应用程序中缓存)。如果您跨越多个Web服务器,那么您可能会看到MemCached或MemCached Win32的强大功能。如果你不介意使用新东西,你也可以看一下Velocity(这是MS对缓存领域过去几年MemCache优势的回答)。

以下是您可能感兴趣的一些SO帖子:

System.Web.Caching vs. Enterprise Library Caching Block

Running a Asp.net website with MS SQL server - When should i worry about scalability?

相关问题