Redis ZINTERSTORE 命令用于对多个有序集合进行交集计算,并将结果保存到新的有序集合中.
destination:新有序集合的名称;
numkeys:待计算有序集合的数量;
key:待计算有序集合的名称;
WEIGHTS weight:为每个有序集合指定一个乘法因子,用来调整权重;
AGGREGATE:聚合方式,可以是 SUM 、 MIN 或 MAX,默认为 SUM.
下面是一个使用示例:
12⑦0.0.1:6379> ZADD first 1 "A" 2 "B" 3 "C"
(integer) 3
12⑦0.0.1:6379> ZADD second 2 "B" 3 "C" 4 "D"
(integer) 3
12⑦0.0.1:6379> ZINTERSTORE result 2 first second
(integer) 2
12⑦0.0.1:6379> ZRANGE result 0 -1 WITHSCORES
1) "B"
2) "4"
3) "C"
4) "6"
上述示例中,先创建了两个有序集合 first 和 second,然后调用 ZINTERSTORE 命令计算两者的交集,并将结果保存到新的有序集合 result 中.最后使用 ZRANGE 命令查看交集结果.
12⑦0.0.1:6379> ZADD team1 1 "Messi" 2 "Xavi" 3 "Iniesta" 4 "Pique"
(integer) 4
12⑦0.0.1:6379> ZADD team2 1 "Ronaldo" 2 "Benzema" 3 "Modric" 4 "Kroos"
(integer) 4
12⑦0.0.1:6379> ZINTERSTORE team12 2 team1 team2 WEIGHTS 1.5 1.0
(integer) 0
12⑦0.0.1:6379> ZRANGE team12 0 -1 WITHSCORES
1) "Benzema"
2) "3"
3) "Iniesta"
4) "④5"
5) "Kroos"
6) "4"
7) "Modric"
8) "3"
9) "Pique"
10) "6"
11) "Ronaldo"
12) "1.5"
13) "Xavi"
14) "3"
12⑦0.0.1:6379> ZADD rank1 1 "Jack" 2 "Bob" 3 "Mary" 4 "Jenny" 5 "Lucy"
(integer) 5
12⑦0.0.1:6379> ZADD rank2 1 "Bob" 2 "Mary" 3 "Jenny" 4 "Lucy" 5 "Tony"
(integer) 5
12⑦0.0.1:6379> ZADD rank3 1 "Mary" 2 "Lucy" 3 "Tony" 4 "Lily" 5 "David"
(integer) 5
12⑦0.0.1:6379> ZADD rank4 1 "Jenny" 2 "Lucy" 3 "David" 4 "LiLei" 5 "HanMeiMei"
(integer) 5
12⑦0.0.1:6379> ZINTERSTORE result 4 rank1 rank2 rank3 rank4
(integer) 0
12⑦0.0.1:6379> ZRANGE result 0 -1 WITHSCORES
1) "Lucy"
2) "8"
交集计算涉及多个有序集合,所以每个有序集合中的元素必须是唯一的,否则可能会计算出错误的结果.
Redis ZINTERSTORE 命令
以上就是土嘎嘎小编为大家整理的Redis ZINTERSTORE命令相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!