2012-01-24 73 views
1

對於redis中的兩組,有運營商可以獲得聯盟,交集等。如何使用redis ruby​​來計算redis中的補集操作?

但是我無法找到2 SETS之間的COMPLEMENT?

有沒有我錯過的搜索/知道如何獲得SET COMPS的?

實施例:

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」這是我認爲它的補充。

這是如何實現的?

回答

3

這可能是你想要什麼:

http://redis.io/commands/sdiff

或者,如果你想存儲的結果:

http://redis.io/commands/sdiffstore

紅寶石適配器如下Redis的API相當嚴格,所以有相同的命令。

更新:

從更新您希望對稱差我推斷。你不能在一個操作中做到這一點,但你可以做到這一點:

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

評論框禁用代碼片段。所以,我已經更新了這個問題。你能再看一遍嗎? – Autodidact