2012-01-24 7 views
1

赤い組の2つの組については、連合、交叉などを得る演算子があります。redisルビを使ってredisで補集合演算を計算するには?

しかし2つのSETSの間には何も見つかりませんでしたか?

私は、SETの補足を得る方法について検索/知りたくないと思いますか?

例:

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> 

diffは単に "a" および "b" をバック与えます。

しかし、 "a"、 "b"、 "d"、 "e"がほしいと思います。

これはどのように達成できますか?

答えて

3

これは何をしたい、おそらくです:

http://redis.io/commands/sdiff

それとも、あなたは結果を保存したい場合:

http://redis.io/commands/sdiffstore

ルビーアダプタはそう、かなり厳密にRedisのAPIを次の同じコマンドを持っています。

アップデート:私はあなたが対称差をつけたい推測更新から

。 1回の操作でこれを行うことはできませんが、複数で行うことができます。

redis> sdiffstore diff1 key1 key2 
redis> sdiffstore diff2 key2 key1 
redis> sunion diff1 diff2 
+0

コメントボックスはコードスニペットを無効にします。だから、私は代わりに質問を更新しました。もう一度それを見ることができますか? – Autodidact

関連する問題