Redis использует слишком много памяти, меньшее количество клавиш - PullRequest
0 голосов
/ 03 января 2019

У меня есть автономный сервер redis, с около 8000 ключей в данном экземпляре.Показывает, что значение used_memeory составляет около 8,5 ГБ.

Максимальное значение ключа моего индивидуума составляет около 50 КБ, согласно этому расчёту значение used_memory должно быть меньше 1 ГБ (50 КБ * 8000)

IЯ использую Spring RedisTemplate с конфигурацией пула по умолчанию для подключения к redis

Любая идея, что я должен посмотреть, чтобы сузить, где используется память?

1 Ответ

0 голосов
/ 04 января 2019

zset внутренне использует две структуры данных для хранения одинаковых элементов, чтобы получить O (log (N)) INSERT и REMOVE операции в отсортированной структуре данных.

Две специфические структуры данных:

  • Хеш-таблица
  • Пропустить список

Хранение для идеальных чехлов, согласно моим исследованиям, в следующем порядке,
hset <<code>set <<code>zset

Я бы порекомендовал вам начать использовать hset, если у вас есть иерархическое хранилище данных. Это снизит потребление памяти, но может сделать поиск крошечным (медленнее) (только если у одного ключа больше, чем, скажем, пара сотен записей)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...