是否有一种标准方法可以使用redis返回所有设置的交叉点?
例如,使用下面的数据我想返回所有集合之间共同的成员数量,共计3次比较
HMSET cset_details:1 name 'set 1' description 'my first set' date 'today'
HMSET cset_details:2 name 'set 2' description 'my second set' date 'today'
HMSET cset_details:2 name 'set 3' description 'my third set' date 'today'
SADD cset_members:1 a b c d
SADD cset_members:2 c d e
SADD cset_members:3 d e f g
由于
伊恩
答案 0 :(得分:1)
我相信您正在寻找SINTER
和SINTERSTORE
命令(请参阅http://redis.io/commands/sinter和http://redis.io/commands/sinterstore)
127.0.0.1:6379[1]> SADD cset_members:1 a b c d
(integer) 4
127.0.0.1:6379[1]> SADD cset_members:2 c d e
(integer) 3
127.0.0.1:6379[1]> SADD cset_members:3 d e f g
(integer) 4
127.0.0.1:6379[1]> SINTER cset_members:1 cset_members:2 cset_members:3
1) "d"
127.0.0.1:6379[1]> SINTERSTORE in_all_sets cset_members:1 cset_members:2 cset_members:3
(integer) 1
127.0.0.1:6379[1]> SMEMBERS in_all_sets
1) "d"
127.0.0.1:6379[1]>