предполагая, что у вас есть 32 ГБ памяти, выделенной Redis и другой памяти, доступной для системных ресурсов, можно вычислить количество записей, которые можно хранить. Однако имейте в виду, что это чрезвычайно обобщено, поскольку всегда есть какие-то накладные расходы. Независимо от того, если вы посмотрите на чистое количество записей с математической точки зрения, вы можете хранить примерно миллиард записей с 32 ГБ оперативной памяти.
1 GB = 1024MB
1 MB = 1024KB
1 KB = 1024B
1GB = 1,073,741,824B
32GB = 34,359,738,368B
size = 12B + 20B = 32B
number_of_entries = (available_size / size_of_entry)
= (34,359,738,368B / 32B)
= 1,073,741,824
Как я уже говорил, очень плохо просто предположить, что там это не накладные расходы. Увидеть Рэдис все Часто задаваемые вопросы ниже. Не зная более подробной информации о вашей среде, было бы невозможно дать более точные цифры.
какой объем памяти Redis?
приведу несколько примеров (все получены с использованием 64-битных экземпляров):
Пустой экземпляр использует ~ 1 МБ памяти.
1 миллион маленьких ключей - > пары строковых значений используют ~ 100 МБ памяти.
1 миллион ключей - > хэш-значение, представляющее объект с 5 полями, используйте ~ 200 МБ память.
Чтобы проверить свой вариант использования тривиально с помощью утилиты Redis-benchmark для создания случайных наборов данных и проверить с помощью команды INFO memory пространство, используемое.
64-битные системы будут использовать значительно больше памяти, чем 32-битные системы для хранения тех же ключей, особенно если ключи и значения малы, это потому, что указатели занимает 8 байт в 64-битных системах. Но, конечно, преимущество заключается в том, что вы можете иметь много памяти в 64-битных системах, поэтому для запуска больших серверов Redis 64-битная система более или менее требуется. Альтернативой является сегментирование.