Redis Zinterstore 命令
Redis Zinterstore 用于计算多个有序集合的交集,并将结果存储在新的有序集合中。
Zinterstore 命令对于需要对有序集合进行集合运算(例如计算交集)时非常有用。
默认情况下,结果集中某个成员的分数值是所有给定集下该成员分数值之和。
语法
redis Zinterstore 命令基本语法如下:
ZINTERSTORE destination numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE sum|min|max]
destination
:结果有序集合的名称。numkeys
:要计算交集的有序集合的数量。key
:参与计算的有序集合的名称。WEIGHTS weight [weight ...]
:指定每个有序集合的权重。默认权重为 1。AGGREGATE sum|min|max
:指定交集结果的聚合方式。默认是sum
(求和)。
可用版本
>= 2.0.0
返回值
保存到目标结果集的的成员数量。
实例
# 有序集 mid_test redis 127.0.0.1:6379> ZADD mid_test 70 "Li Lei" (integer) 1 redis 127.0.0.1:6379> ZADD mid_test 70 "Han Meimei" (integer) 1 redis 127.0.0.1:6379> ZADD mid_test 99.5 "Tom" (integer) 1 # 另一个有序集 fin_test redis 127.0.0.1:6379> ZADD fin_test 88 "Li Lei" (integer) 1 redis 127.0.0.1:6379> ZADD fin_test 75 "Han Meimei" (integer) 1 redis 127.0.0.1:6379> ZADD fin_test 99.5 "Tom" (integer) 1 # 交集 redis 127.0.0.1:6379> ZINTERSTORE sum_point 2 mid_test fin_test (integer) 3 # 显示有序集内所有成员及其分数值 redis 127.0.0.1:6379> ZRANGE sum_point 0 -1 WITHSCORES 1) "Han Meimei" 2) "145" 3) "Li Lei" 4) "158" 5) "Tom" 6) "199"