最简单的键值存储,用于xml数据,具有最佳的.NET性能

时间:2010-08-27 00:48:36

标签: .net xml nosql

我需要一种方法来在一个简单的键/值存储中存储大量不同大小的XML数据。 到目前为止,我尝试了两种简单的方法:

  1. RAM:将所有内容存储在ConcurrentDictionary实例中
    • 问题:项目启动时资源有限,单个服务器有8GB RAM!
    • 注意:如果我们获得更多功能强大的服务器,Windows AppFabric将来可能会成为一种解决方案。
  2. HDD:将每个值存储在硬盘上的自己的文件中,并将键映射到路径
    • 问题:延迟
    • 问题:在最乐观的情况下,使用SSD会产生多大差异?
  3. 是否有可以提供中间功能的现成数据库解决方案,在使用硬盘时提供非常快速的读取访问时间?

    写访问仅对维护是必需的,因此任何专门针对只读方案的最小延迟的解决方案都将起作用。数据服务器应该可以使用WCF进行通信。

2 个答案:

答案 0 :(得分:2)

如果您在.Net中,可能需要查看memcached。它允许您从内存缓存开始,并根据需要移动到冗余存储。这完全取决于您的数据要求以及您阅读和书写商店的频率。

对于数据库,MSSQL提供XML类型存储,因此你可以肯定地在其中创建一个带有XML的简单表,但它并不便宜,你提到你想要一个NoSQL实现。请注意,如果您需要搜索或排序XML,您可能会发现XPath和索引可用作奖励......

答案 1 :(得分:0)

GetCache.net是一个仅在内存中工作的分发键/值存储。它具有可扩展性,支持数据复制和数据过期。客户端库基于WCF。 它可以从Nuget获得。