Я хочу кешировать данные на клиенте. Каков наилучший алгоритм / структура данных, которую можно использовать?
Случай 1. Для хранения данных требуется чрезвычайно быстрый поиск строки.
Случай 2. Кэшированный набор данных может быть большим. Я не хочу взрывать использование памяти клиентом, а также я не хочу делать вызовы доступа к сети и диску, что замедляет мое время обработки на стороне клиента
Решения:
Случай 1: Я думаю, дерево суффиксов / Tries дает вам хорошее решение в этом случае.
Случай 2: Рассмотрим две проблемы:
- Для хранения больших данных с минимальным потреблением памяти
- Не совершать никаких сетевых вызовов для доступа к любым данным, которые недоступны в кеше.
Модель кеширования LRU - это одно из решений, которое я могу придумать, но оно не мешает мне раздуть память.
Есть ли способ записать в файл и получить доступ без ущерба для данных (аспект безопасности)?
Дайте мне знать, если какой-либо пункт не ясен.
EDIT:
Джош, я знаю, что мои требования нереалистичны. Чтобы сузить мои требования, я ищу что-то, что хранит, используя алгоритм LRU. Было бы хорошо, если бы у нас была конфигурация динамического размера для этого LRU с максимальным ограничением. Это уменьшит количество вызовов, поступающих в сеть / базу данных, а также обеспечит хорошую производительность.
Если этот алгоритм LRU работает со сжатыми данными, которые можно интерпретировать с небольшими издержками (но меньше, чем сетевой вызов), это будет намного лучше.