Будет ли масштаб отсортированных наборов Redis? - PullRequest
2 голосов
/ 05 августа 2011

Это может быть скорее теоретический вопрос, но я ищу прагматичный ответ.

Я планирую использовать Сортированные наборы Redis , чтобы сохранить ранжирование модели в моей базе данных.на основе рассчитанного значения.В настоящее время мой набор данных мал (250 членов в наборе).Мне интересно, масштабируются ли отсортированные наборы, скажем, 5000 членов или больше.Redis утверждает, что максимальное значение составляет 1 ГБ, а мои значения являются идентификатором моей модели, поэтому я не очень беспокоюсь о масштабируемости значения отсортированного набора.

ZRANGE имеет временную сложностьO (log (N) + M).Если я чаще всего пытаюсь получить топ-5 предметов ранжирования из набора, может возникнуть проблема с журналом (N) из набора предметов N.

Я также планирую использовать ZINTERSTORE , которыйимеет временную сложность O (N * K) + O (M * log (M)).Я планирую часто использовать ZINTERSTORE и извлекать результаты, используя ZRANGE 0 -1

Я предполагаю, что мой вопрос двоякий.

  1. Будет ли отсортированная Redis масштабироваться до 5000 участников без проблем?10000?50 000?
  2. Начнут ли ZRANGE и ZINTERSTORE (вместе с ZRANGE) показывать проблемы с производительностью при применении к большому набору?

Ответы [ 2 ]

5 голосов
/ 05 августа 2011

У меня не было проблем с сотнями тысяч ключей в отсортированных наборах.Конечно, получение всего набора займет некоторое время, чем больше набор, но это ожидается - даже с точки зрения ввода / вывода.

Один такой экземпляр был на сервере с несколькими используемыми БД и несколькими отсортированными наборами с ключами от 50k до> 150k.Высокие записи были нормой, так как они используют множество команд цинка, поступающих в результате анализа журналов веб-сервера в реальном времени, достигающих пика в более чем 150 миллионов записей в день.И я буду хранить неделю за раз.

Учитывая мой опыт, я бы сказал, пойти и посмотреть;это, вероятно, будет хорошо, если ваше серверное оборудование не является действительно низким уровнем.

0 голосов
/ 17 марта 2015

В Redis отсортированные наборы имеют ограничения по масштабированию.Сортированный набор не может быть разбит на части.В результате, если размер отсортированного набора превышает размер раздела, вы ничего не можете сделать (без изменения Redis).

Цитата из статьи:

детализация разбиения является ключом, поэтому невозможно разделить набор данных одним огромным ключом, например очень большим отсортированным набором [1].

Ссылка:

[1]http://redis.io/topics/partitioning

...