我正在寻找一种用于缓存大量数据的解决方案。
相关问题,但针对不同语言:
用不同的术语关闭问题:
我不需要(或不想为此支付任何费用)持久性、事务、线程安全等,并且想要使用不比 List<> 或 Dictionary<> 复杂得多的东西。
如果我必须编写代码,我会将所有内容保存为临时目录中的文件:
string Get(int i)
{
File.ReadAllText(Path.Combine(root,i.ToString());
}
在我的情况下,索引将是一个int
(并且它们应该是连续的或足够接近)并且数据将是一个string
,因此我可以摆脱同时处理POD并且宁愿超轻并做到这一点。
用法是我有一个 3k 文件序列(如文件 #1 到 #3000),总计 650MB,需要为序列中的每个步骤做一个差异。我希望总数大致相同或更多,我不想将所有这些都保存在内存中(更大的情况可能会出现在我无法做到的情况下)。
许多人为我的问题提出了不同的解决方案。然而,似乎没有一个针对我的小利基。我正在查看磁盘支持缓存的原因是因为我预计我当前的使用将占用我可用地址空间的 1/3 到 1/2。我担心更大的箱子会完全耗尽空间。我不担心踩踏、持久性或复制。我正在寻找的是使用最少代码、最少占用空间、最少内存开销和最低复杂性的最小解决方案。
我开始认为我过于乐观了。