1.zinterstore-交集 取这俩集合的交集,就可以完成上面的需求。 zinterstore 可以计算多个有序集合的交集(无序集合的score为0),并生成新的有序集合。...ZINTERSTORE destination numkeys key [key ...]...zinterstore article:score:1 2 article:type:1 article:score aggregate max 计算上面两个集合的交集,以取最大值的方式聚合。
该命令的作用是:将两个或多个 zset 求交集,命令格式如下: ZINTERSTORE destination numkeys key [key ...]...200 bb 300 cc (integer) 3 127.0.0.1:6379> zadd k2 100 aa 200 cc 300 dd (integer) 3 127.0.0.1:6379> zinterstore...3) "cc" 4) "500" 求 k1 和 k2 的交集 k4,观察 k4 中成员的分数,这次使用参数 weights,该参数表示对应集合的权重 127.0.0.1:6379> zinterstore...* 2 + k2(aa) * 3 = 100 * 2 + 100 * 3 = 500 最后一个参数 aggregate 表示交集的聚合方式: 相加的聚合方式:sum 127.0.0.1:6379> zinterstore...[WEIGHTS weight] [AGGREGATE SUM|MIN|MAX] 该命令的使用方式与 zinterstore 的方式相同,只是最后计算的是并集不是交集,这里不再进行演示。
zrevrank key member zrebrank 命令则正好相反,分数最大的元素排名为0 ---- 计算有序集合的交集 zinterstore...numkeys key [ key ... ] [ weights weight [ weight ... ] ] [ aggregate SUM | MIN | MAX ] zinterstore...键中元素的分数是参与计算的集合中该元素分数最小值 3.当 aggregate 是 MAX 是,destination 键中元素的分数是参与计算的集合中该元素分数最大值 zinterstore...参数设置每个集合的权重,每个集合在参与计算时元素的分数会被乘上该集合的权重 ---- 计算集合间的并集 zunionstore 用法与 zinterstore
"zRemKey", "one"); System.out.println(zSetOperations.range("zRemKey", 0 , -1)); } 交并集 命令 用例 描述 ZINTERSTORE...ZINTERSTORE destination numkeys key [key ...]...``[WEIGHTS weight] [SUM\|MIN\|MAX] 计算给定的numkeys个有序集合的并集,并且把结果放到destination中 ZINTERSTORE命令 计算给定的numkeys...ZINTERSTORE destination numkeys key [key ...] [WEIGHTS weight [weight ...]]...下面是java代码 @Test public void zInterStore() { zSetOperations.add("zInterStoreKey1", "one", 1);
•ZINTERSTORE命令还能够通过WEIGHTS参数设置每个集合的权重,每个集合在参与计算时元素的分数会被乘上该集合的权重。...ZINTERSTORE destination numkeys key [key ...]
ZINTERSTORE destination numkeys key [key ...]...``[WEIGHTS weight] [SUM\|MIN\|MAX] | 计算给定的numkeys个有序集合的并集,并且把结果放到destination中 | ZINTERSTORE命令 计算给定的numkeys...ZINTERSTORE destination numkeys key [key ...] [WEIGHTS weight [weight ...]]...zInterStoreKey1 zInterStoreKey2 WEIGHTS 2 3 ZRANGE zInterStoreSumResult 0 -1 WITHSCORES 执行结果如下 [zinterstore...raw=true] 下面是java代码 @Test public void zInterStore() { zSetOperations.add("zInterStoreKey1", "one
Mike 43 Hebe 77 Wawa (integer) 4 # (1) 交集 # 对集合user1和user2做交集,结果保存到user_inter1集合中 # 数字2的意思做交集的集合的个数,zinterstore...user_inter_tmp n user1 user2 ... usern beh07:6379> zinterstore user_inter1 2 user1 user2 (integer)...user_inter1 0 -1 withscores 1) "Wawa" 2) "133" 3) "Hebe" 4) "142" 5) "Mike" 6) "170" # 指定权重,默认为1 beh07:6379> zinterstore...0 -1 withscores 1) "Wawa" 2) "56" 3) "Mike" 4) "88" 5) "Hebe" 6) "99" # (2) 并集 # zunionstore的参数用法与zinterstore
---- 二、集合间操作 1.交集 zinterstore destination numkeys key [key ...]...[WEIGHTS weight] [AGGREGATE SUM|MIN|MAX] 因为zinterstore命令参数比较多,所以下面我们详细了解一下: destination:将交集的计算结果,保存到这个键中...zunionstore命令的相关参数和zinterstore命令相同。 ---- 时间复杂度 下面我们了解一下上述命令的时间复杂度。 ? ?
score范围查找元素 zrank 获取元素在集合中的排名,从小到大,最小的是0 zrevrank 获取元素在集合中的排序,从大到小 zincrby 给元素增加分数,如果不存在就新创建元素,并赋予对应的分数 zinterstore...withscores 1) "aa" 2) "5" 3) "a1" 4) "65" 5) "a2" 6) "70" 7) "a3" 8) "80" 9) "a4" 10) "90" ZInterStore...zadd s1 2 a1 3 a2 4 a3 (integer) 3 127.0.0.1:6379> zadd s2 5 a1 6 a4 7 a3 (integer) 3 127.0.0.1:6379> zinterstore...127.0.0.1:6379> zinterstore s5 2 s1 s2 weights 3 1 (integer) 2 127.0.0.1:6379> zrange s5 0 -1 withscores
有序集合的交、并操作 指令格式 # 将numkey个集合 的交集保存到destination 中,合并之后的新集合中,score值被相加 zinterstore destination numkey key...60 aa 70 bb 90 cc # 添加数据到s3中 zadd s3 70 aa 70 bb 100 cc 将以上是那个集合的交集保存到 ss 中 # 求s1、s2、s3的交集 保存到 ss 中 zinterstore...我们还可以指定交叉的元素 取最大值(max)还是 最小值(min),而不是 求和值(sum),如下指令 # 求 s1、s2、s3 的交集保存到 ss1 中,取交叉元素的最大值 zinterstore ss1...3 s1 s2 s3 aggregate max # 求 s1、s2、s3 的交集保存到 ss2 中,取交叉元素的最小值 zinterstore ss2 3 s1 s2 s3 aggregate min
member 返回值 > ZINCRBY zsets1 12 php "14" 查询(ZCARD、ZCOUNT、ZLEXCOUNT、ZRANGE、ZRANGEBYSCORE、ZREVRANK、ZSCORE、ZINTERSTORE...4) "python" 5) "ruby" 6) "c" 7) "c++" 8) "a" > ZRANK zsets4 c (integer) 5 一个或多个有序集的交集并将结果集存储在新的有序集(ZINTERSTORE...) # destination 新的集合 numkeys 合并集合数 ZINTERSTORE destination numkeys key [key ...]...[WEIGHTS weight] 返回值 > zadd zsets2 1 c++ 2 py 3 ruby (integer) 2 > ZINTERSTORE zsets3 2 zsets1 zsets2
inf);字典排序(+、-); 2.1、ZSet增加与统计 【核心命令】 增加【ZADD、ZINCRBY】; 统计数量【ZCARD、ZCOUNT、ZLEXCOUNT】; 集合运算【ZUNIONSTORE、ZINTERSTORE...; 【ZINCRBY】increment避免使用浮点数,结果易出错; 【ZCARD、ZCOUNT、ZLEXCOUNT】统计集合(所有、指定分数区间、指定元素区间)元素个数; 【ZUNIONSTORE、ZINTERSTORE...member ZCARD 统计有序集合的元素个数 key ZCOUNT 统计指定【score区间】的元素个数 key min max ZLEXCOUNT 统计指定【元素区间】的元素个数 key min max ZINTERSTORE
zinterstore:交集。参数如下: destination:交集计算结果保存到这个键 numkeys:需要做交集计算键的个数 key[key...]...member会将自己分数乘以这个权重,每个键的权重默认是1 aggregate sum|min|max:计算成员交集后,分值可以按照sum(和)、 min(最小值)、max(最大值)做汇总,默认值是sum zinterstore...该命令的所有参数和zinterstore是一致的,只不过是做并集计算 zunionstore destination numkeys key [key ...]...O(log(m)+k),k是要删除的成员个数,”是当前有序集合成员个数 zremrangebyscore key min max O(log(n)+k),k是要删除的成员个数,是当前有序集合成员个数 zinterstore
ZINTERSTORE 最早可用版本:2.0.0 时间复杂度:O(N * K)+O(M * log(M)),N是输入的zset中的最小的成员数量,K为输入的zset的数量。...M是结果中zset的成员数量 用法:ZINTERSTORE destination numkeys key [key …][WEIGHTS weight [weight …]][AGGREGATE SUM...|MIN|MAX] ZINTERSTORE命令用于计算给出的numkeys个zset的交集,并将结果保存到destination中。...ZADD myzset2 2 "zhe" (integer) 1 127.0.0.1:6379> ZADD myzset2 3 "2018" (integer) 1 127.0.0.1:6379> ZINTERSTORE...关于WEIGHTS和AGGREGATE参数,可以查看ZINTERSTORE命令中的介绍。
); System.out.println("zrange:keyC中的所有值 " + jedisCluster.zrange(keyC, 0, -1)); System.out.println("zinterstore...:交集 keyC 与 keyA,KeyB" + jedisCluster.zinterstore(keyC, keyA, keyB)); System.out.println("zinterstore:...交集 keyC 与 keyA" + jedisCluster.zinterstore(keyC, keyA)); System.out.println("zinterstore:交集 keyC 与 keyA..." + jedisCluster.zinterstore(keyC, keyB)); System.out.println("zrange: keyC中的值" + jedisCluster.zrange...:交集 keyC 与 keyA,KeyB1 zinterstore:交集 keyC 与 keyA1 zinterstore:交集 keyC 与 keyA3 zrange: keyC中的值[c, d, b
成员的有序集合: 127.0.0.1:6379> ZINCRBY k1 3 v1 "63" 127.0.0.1:6379> ZRANGE k1 0 0 withscores 1) "v1" 2) "63" ZINTERSTORE...ZINTERSTORE命令可以计算给定的numkeys个有序集合的交集,并且把结果放到destination中。...127.0.0.1:6379> ZADD k3 10 v3 (integer) 1 127.0.0.1:6379> ZADD k3 11 v4 (integer) 1 127.0.0.1:6379> ZINTERSTORE...integer) 2 127.0.0.1:6379> ZRANGE k4 0 -1 withscores 1) "v2" 2) "12" 3) "v3" 4) "14" 127.0.0.1:6379> ZINTERSTORE
ZINCRBY ZRANGE ZREVRANGE ZRANGEBYSCORE ZREVRANGEBYSCORE ZRANK ZREVRANK ZREMRANGEBYRANK ZREMRANGEBYSCORE ZINTERSTORE
//并集计算 ZINTERSTORE destkey numkeys key [key …]//交集计算 应用场景 我们都知道微博热点,新闻热榜,投票排行榜等都有一个排名的概念,如下图百度热榜,展示的是实时的点击量比较高的新闻
key_1 0 100 (integer) 1 # 查看成员 127.0.0.1:6379> ZRANGE key_1 0 -1 WITHSCORES 1) "xiaoming" 2) "200" ZINTERSTORE...ZINTERSTORE destination numkeys key [key ...]..." 2) "70" 3) "xiaoming" 4) "100" # 把 key_1 和 key_2 根据 成员 把相关的 分数加起来到一个新的集合 sum_key 127.0.0.1:6379> ZINTERSTORE...ZINTERSTORE 则用于计算给定的一个或多个有序集的==交集==。
把多个命令一起发给server,不必每个命令单独请求,大大减少了网络的消耗 官方文档中给出了一个示例,执行1000次 ping 命令,使用管道后,快了5倍 (3)尽量避免耗时的命令 有些命令是相对耗时的,例如 ZINTERSTORE
领取专属 10元无门槛券
手把手带您无忧上云