我正处于在 C# 中设计内存缓存的初始阶段(它将作为 Windows 服务运行)。一旦投入生产,预计平均可容纳近一百万个对象(各种类型)。一些缓存项目的大小可以达到 10MB(或更大)。我考虑了各种数据存储解决方案,现在我决定使用 DataTable 或 SQLite 内存实例作为缓存存储。在这一点上,我的问题是
- 您认为有这么多记录的 DataTable 的性能如何?
- 你认为使用 SQLite 解决方案是不是有点矫枉过正?(由于 SQLite 被设计为“数据库”,我可能并不真正想要所有与数据库相关的管道活动)
性能对我来说是最重要的。
编辑
添加更多细节。
- 这些缓存项不仅仅是键值对,它们还有两个(截至目前)属性(固定和锁定项),这会影响它们的可用性。每次查找都将包括所有三个属性。
- 已经考虑过 Memcached,但目前这不是一个选项,主要是由于我们的 SLA 限制(我只能说这些)。
- 并非所有项目的大小都是 10MB。
- 我很确定其中许多项目将仅仅是数字和小字符串值。
- 我相信,RAM 的可用性不是问题。
在此先感谢,詹姆斯