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 ...]
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
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
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
---- 二、集合间操作 1.交集 zinterstore destination numkeys key [key ...]...[WEIGHTS weight] [AGGREGATE SUM|MIN|MAX] 因为zinterstore命令参数比较多,所以下面我们详细了解一下: destination:将交集的计算结果,保存到这个键中...zunionstore命令的相关参数和zinterstore命令相同。 ---- 时间复杂度 下面我们了解一下上述命令的时间复杂度。 ? ?
有序集合的交、并操作 指令格式 # 将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命令中的介绍。
成员的有序集合: 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
); 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
ZINCRBY ZRANGE ZREVRANGE ZRANGEBYSCORE ZREVRANGEBYSCORE ZRANK ZREVRANK ZREMRANGEBYRANK ZREMRANGEBYSCORE ZINTERSTORE
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 则用于计算给定的一个或多个有序集的==交集==。
//并集计算 ZINTERSTORE destkey numkeys key [key …]//交集计算 应用场景 我们都知道微博热点,新闻热榜,投票排行榜等都有一个排名的概念,如下图百度热榜,展示的是实时的点击量比较高的新闻
把多个命令一起发给server,不必每个命令单独请求,大大减少了网络的消耗 官方文档中给出了一个示例,执行1000次 ping 命令,使用管道后,快了5倍 (3)尽量避免耗时的命令 有些命令是相对耗时的,例如 ZINTERSTORE
领取专属 10元无门槛券
手把手带您无忧上云