您当前的位置: 首页 > 慢生活 > 程序人生 网站首页程序人生
Redis Zinterstore 命令
发布时间:2021-11-05 23:17:20编辑:雪饮阅读()
Redis Zinterstore 命令计算给定的一个或多个有序集的交集,其中给定 key 的数量必须以 numkeys 参数指定,并将该交集(结果集)储存到 destination 。
默认情况下,结果集中某个成员的分数值是所有给定集下该成员分数值之和。
首先有如下有序集合
127.0.0.1:6379> flushdb
OK
127.0.0.1:6379> zadd key1 1 val1 2 val2 3 val3 4 val4
(integer) 4
127.0.0.1:6379> zadd key2 1 val1 3 val3 4 val4 5 val5
(integer) 4
127.0.0.1:6379> zadd key3 5 val3 6 val4 7 val5 8 val2
(integer) 4
127.0.0.1:6379> zrange key1 0 -1 withscores
1) "val1"
2) "1"
3) "val2"
4) "2"
5) "val3"
6) "3"
7) "val4"
8) "4"
127.0.0.1:6379> zrange key2 0 -1 withscores
1) "val1"
2) "1"
3) "val3"
4) "3"
5) "val4"
6) "4"
7) "val5"
8) "5"
127.0.0.1:6379> zrange key3 0 -1 withscores
1) "val3"
2) "5"
3) "val4"
4) "6"
5) "val5"
6) "7"
7) "val2"
8) "8"
那么我们key1与key2求交集:
127.0.0.1:6379> zinterstore key4 2 key1 key2
(integer) 3
127.0.0.1:6379> zrange key4 0 -1 withscores
1) "val1"
2) "2"
3) "val3"
4) "6"
5) "val4"
6) "8"
那么接下来我们看看key1,key2,key3三个key的交集:
127.0.0.1:6379> zinterstore key4 3 key1 key2 key3
(integer) 2
127.0.0.1:6379> zrange key4 0 -1 withscores
1) "val3"
2) "11"
3) "val4"
4) "14"
同时可以发现这里我们存储目标同样指定的key4,和上面两个key求交集时候指定的存储目标key一致,更结合一开始我们是没有key4的,所以这里发现不存在的存储目标key会自动创建,若存在则会用结果集覆盖这个存储目标key。
通过上面的实例,我们不难总结出返回值:
返回值
保存到目标结果集的的成员数量。
关键字词:Redis,Zinterstore
上一篇:Redis Zincrby 命令