2017-11-13 5 views
0

私はこの種のレディスに新しいので、この質問はばかげているかもしれませんが、ここでSINTERコマンドをラップしようとしています。REDIS - 複数のセッティングのインターセクション

問題は複数のSETがあり、それらにINTERを作成しようとしていることです。 私はそれを個別に実行すると結果が得られますが、複数の引数を渡すと空に戻ります。 INTERに関するドキュメントを読むと、指定された引数が何も返されない空のSETであるかどうかがわかりますが、すべてのSETは空ではありません。

# below statement should return {'758', '762', '752'} 
127.0.0.1:6379> SINTER Asset:all Asset:id:2275 Asset:id:2280 Asset:id:2269 
(empty list or set) 
127.0.0.1:6379> SINTER Asset:all Asset:id:2275 
"758" 
127.0.0.1:6379> SINTER Asset:all Asset:id:2280 
"762" 
127.0.0.1:6379> SINTER Asset:all Asset:id:2269 
"752" 

他のすべてのコマンド(SUNION、SDIFFなど)は正常に動作しています。あなたがこのコマンドを誤解しているようです

+0

を設定します。 'SINTER'は指定した** ALL **集合の共通部分を返します。 –

+0

私は二番目@ for_stackの答え –

+0

オハイオウは今それを持っている、つまり、すべてのセットは、交差点の仕事を得るために共通の要素を持っている必要があることを意味します。だから私は1つの 'SET'を作成し、新しく作成されたセットとの交差点を作る必要がありますか?他の方法はありますか? – Mahendra

答えて

0

がセットにSUNIONを行うことで、必要な行動を持って、その後、新しく作成された上の焼結体

127.0.0.1:6379> SUNION ~unionset Asset:id:2275 Asset:id:2280 Asset:id:2269 
127.0.0.1:6379> SINTER Asset:all ~unionset 
"758" 
"762" 
"752" 
関連する問題