Как рассчитать количество возможных записей в Redis на 32 ГБ памяти?

в моей компании говорят о возможности построить какую-то часть нашего бэкенда в Redis вместо mongodb но мы хотим посчитать сколько записей мы сможем хранить на сервере с 32G. Хотя я знаю, что это полностью зависит от размера ключа и значения, есть ли способ вычислить, сколько элементов мы сможем сохранить, если наши элементы все такие:

key: Hexadecimal with 12 bytes.
value: String with 20 bytes.
30
задан Shekhar
28.01.2023 11:22 Количество просмотров материала 3098
Распечатать страницу

1 ответ

предполагая, что у вас есть 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-битная система более или менее требуется. Альтернативой является сегментирование.

3
отвечен kobaltz 2023-01-29 19:10

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх