Я ищу решение для кэширования больших объемов данных.
связанные вопросы, но для разных языков:
Закрыть вопрос в разных терминах:
Мне не нужно (или я хочу платить за что-либо) постоянство, транзакции, безопасность потоков или тому подобное, и хочу что-то, что не намного сложнее, чем List <> или Dictionary <>.
Если мне нужно написать код, я просто сохраню все как файлы во временном каталоге:
string Get(int i)
{
File.ReadAllText(Path.Combine(root,i.ToString());
}
В моих случаях индекс будет int
(и они должны быть последовательными или достаточно близкими), а данные будут string
, так что я могу избежать обработки как POD и предпочел бы перейти на сверхлегкий и сделать именно это.
Дело в том, что у меня есть последовательность из 3k файлов (как в файлах с 1 по 3000) общим объемом 650 МБ, и мне нужно сделать diff для каждого шага в последовательности. Я ожидаю, что это будет примерно столько же или чуть больше, и я не хочу хранить все это в памяти (могут появиться большие случаи, когда я просто не могу).
Несколько человек предложили разные решения для моей проблемы. Однако ни одна из них, похоже, не нацелена на мою маленькую нишу. Причины, по которым я обращаю внимание на кэширование на диске, состоят в том, что я ожидаю, что мое текущее использование будет занимать от 1/3 до 1/2 моего доступного адресного пространства. Я беспокоюсь, что в больших случаях просто не хватит места. Я не волнуюсь по поводу шагов, настойчивости или репликации. То, что я ищу, - это минимальное решение, использующее минимум кода, минимальный объем использования, минимальные накладные расходы памяти и минимальную сложность.
Я начинаю думать, что я слишком оптимистичен.