Как быстро получить только подмножество набора в Redis - PullRequest
1 голос
/ 26 января 2011

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

  • Вставить
  • Членское тестирование (и / или пересечение)
  • Случайное получение подмножества

Redis кажется отличным кандидатом для такого рода хранилищ, но когда я читаю документы, нет ни одного типа данных, который бы идеально подходил для этого.Было бы идеально иметь команду SUBSET для типа Set.

Каков наилучший способ хранения и запроса такой структуры данных?

1 Ответ

1 голос
/ 27 января 2011

Каким образом обычный набор Redis не соответствует вашим критериям? Вставки и тестирование / пересечение членства, очевидно, встроены. Наборы также имеют SRANDMEMBER для извлечения случайного члена набора. Вы можете вызывать его несколько раз, чтобы получить подмножество элементов (хотя существует вероятность, что один и тот же элемент может быть возвращен несколько раз.

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

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