У меня много integer => string
значения, которые я хочу сохранить в ОЗУ на меньшем сервере. Однако кажется, что такие хранилища данных, как мембрана и redis, хешируют ключ, в результате чего получается ключ, размер которого намного больше целого числа. (Я предполагаю, что они делают это, поскольку предполагают, что ключи будут содержать строки и должны быть настроены для масштабирования до нескольких узлов).
Существуют ли какие-либо хранилища ключей, в которых используются целочисленные ключи, чтобы я мог втиснуть несколько миллионов объектов всего в несколько мегабайт памяти? Я также хотел бы, чтобы он периодически сбрасывался на диск, если это возможно.
Объем используемой памяти будет гораздо больше зависеть от размера строковых значений, чем от ключей, учитывая, что даже если вы сохраняете 32-битное целое число в виде строки, оно может занимать максимум 10 байтов. Конечно, это в 2,5 раза больше хранилища, но насколько малы ваши значения в этом случае?
Я склонен думать, что вы оптимизируете не на том уровне; аппаратное обеспечение дешевое, добавление немного большего объема оперативной памяти для решения проблемы, вероятно, будет гораздо более рентабельным, чем попытки найти очень, очень специализированное хранилище данных (и, по всей вероятности, под словом "найти" я имею в виду "писать и поддерживать его сами").