Как рассчитать операцию набора дополнений в Redis с помощью Redis Ruby? - PullRequest
1 голос
/ 24 января 2012

Для двух наборов в redis есть операторы, чтобы получить объединение, пересечение и т. Д.

Но я не смог найти ни одного для КОМПЛЕМЕНТА между 2 комплектами?

Есть лиВ любом случае, что я пропустил, чтобы найти / узнать, как получить КОМПЛЕКТ КОМПЛЕКТОВ?

Пример:

Пример redis:

redis> SADD key1 "a"
(integer) 1
redis> SADD key1 "b"
(integer) 1
redis> SADD key1 "c"
(integer) 1
redis> SADD key2 "c"
(integer) 1
redis> SADD key2 "d"
(integer) 1
redis> SADD key2 "e"
(integer) 1
redis> SDIFF key1 key2
1) "a"
2) "b"
redis>

Разница просто возвращает "a "и" b ".

Но я хочу" a "," b "," d "и" e ", что, я думаю, является их дополнением.

Как этого можно достичь

1 Ответ

3 голосов
/ 24 января 2012

Это, вероятно, то, что вы хотите:

http://redis.io/commands/sdiff

Или, если вы хотите сохранить результат:

http://redis.io/commands/sdiffstore

Адаптер ruby ​​очень строго следует API Redis, поэтому он имеет те же команды.

update:

Из обновления я выводу, что вы хотите симметричную разницу.Вы не можете сделать это за одну операцию, но вы можете сделать это несколькими:

redis> sdiffstore diff1 key1 key2 
redis> sdiffstore diff2 key2 key1
redis> sunion diff1 diff2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...