我写出了一个类别的导航结构。每个类别都有一个ID,位于第三方搜索工具中。在任何应用程序开始时或以不同的时间间隔,我需要获取caetegories和它们的id,并将它们存储在字典中(或其他方式),以便我可以访问它们以便从id到name的链接重写。最好的方法来缓存存储在C字典#
回答
商店使用看起来是这样的,当你需要做阅读的格式字典在XML文件中的重写
<nodes>
<node id="1">Some Nav Data</node>
</nodes>
然后你有2种选择,写一个单独的进程,以特定时间间隔更新文件,或者当前进程可以在设定的时间间隔后更新文件。
如果您觉得加载和解析XML太过分了,可以考虑将类序列化到包含简单哈希表或字典的磁盘。
你在说多少个设置?为什么你需要一个缓存,而不是仅仅使用带后台线程的内存字典来定期重新加载呢?
如果您需要缓存,您可以查看EntLib中的caching application block。您可以设置到期时间间隔,然后handle an even on expiry重新填充缓存。但坦率地说,这听起来超出了你的要求。
将会有大约70个类别及其关联的ID – mickyjtwin 2009-08-13 05:59:47
本质上,在搜索结果中,搜索结果中会包含id与搜索条件相关的集合。这些ID将是一个类别名称。我需要将id映射到名称,以便我可以编写一个友好的url。同样来自另一方面,传入的请求需要将名称映射回来。这需要在应用程序的生命周期中可用,并且不会经常更改,即几天甚至几周。 – mickyjtwin 2009-08-13 06:02:06
听起来不像很多数据 - 有什么理由不能将它保存在内存中吗?或者你正在寻找其他设施? – serialhobbyist 2009-08-14 10:17:00
缓存是一个超级大的话题!如果您在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?
- 1. 最好的存储方法
- 2. 最好的方式来存储访问统计与缓存
- 3. 在C#中存储/检索字典的最有效方法?
- 4. C#字典存储操作/方法
- 5. 最好的方法来存储60维度的向量 - C++
- 6. 最好的方法来存储大量的常量C#
- 7. 实现LRU缓存的最好方法
- 8. C#最好的方式来存储图像在sqlite
- 9. 最好的方法来存储解析的HTML输出在XML
- 10. 在文件中存储大型Python字典的最佳方法
- 11. 处理字典中存储的“过期”对象的好方法?
- 12. 最好的方法来缓存UIImage不是从网络
- 13. 最好的方法来存储三种类型的位?
- 14. 最好的方法来存储长列表的坐标?
- 15. 是否存在一个更好的方式来存储双向字典,而不是存储其逆向分离?
- 16. 最好的方法来存储客户产品
- 17. Android最好的方法来存储和检索数据列表
- 18. 最好的方法来调用存储过程查询
- 19. 最好的方法来存储敏感数据php加密
- 20. 什么是最好的方法来存储PDF文件?
- 21. 最好的方法来存储数据,属性可以改变
- 22. 最好的方式存储在SQL
- 23. 创建和存储分类字典的最佳方法
- 24. 存储/检索字典的最快方法 - SQL,文本文件...?
- 25. 有效的方法来存储字典(哈希)与Python文件?
- 26. 如何更新存储在django缓存中的字典?
- 27. 字典和缓存
- 28. 最好的DBMS来存储HTML
- 29. 寻找推荐的方法来存储/缓存计数
- 30. 从闪存存储数据,最好的方法?
什么是应用程序上下文?客户端代码?负载均衡的Web服务器?缓存在不同情况下有不同的最佳解决方案。 – Precipitous 2009-08-13 05:12:39
这是一个单一服务器上的Web应用程序。我认为就应用程序启动而言,最好的选择是何时。 – mickyjtwin 2009-08-13 05:25:04