Redis ZUNIONSTORE 命令

返回上一级

Redis ZUNIONSTORE 命令计算给定的一个或多个有序集的并集,其中给定 key 的数量必须以 numkeys 参数指定,并将该并集(结果集)储存到 destination 。

( Redis >= 2.0.0 )

默认情况下,结果集中某个成员的分数值是所有给定集下该成员分数值之和

语法

redis ZUNIONSTORE 命令语法如下:

127.0.0.1:6379> ZUNIONSTORE destination numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE SUM|MIN|MAX]
  • WEIGHTS 使用 WEIGHTS 选项,你可以为每个给定有序集分别指定一个乘法因子(multiplication factor),每个给定有序集的所有成员的 score 值在传递给聚合函数(aggregation function)之前都要先乘以该有序集的因子。

    如果没有指定 WEIGHTS 选项,乘法因子默认设置为 1 。

  • AGGREGATE 使用 AGGREGATE 选项,你可以指定并集的结果集的聚合方式。

    默认使用的参数 SUM ,可以将所有集合中某个成员的 score 值之 和 作为结果集中该成员的 score 值;使用参数 MIN ,可以将所有集合中某个成员的 最小 score 值作为结果集中该成员的 score 值;而参数 MAX 则是将所有集合中某个成员的 最大 score 值作为结果集中该成员的 score 值。

返回值

保存到 destination 的结果集的成员数量

范例

127.0.0.1:6379> FLUSHALL
OK

127.0.0.1:6379> ZADD site 8 "twle.cn" 7 "www.twle.cn" 2 "baidu.com" 3 "qq.com"
(integer) 4

127.0.0.1:6379> ZADD site_t 8 "twle.cn" 4 "tencent.com"  5 "xiaomi.com"
(integer) 3

127.0.0.1:6379> ZRANGE site 0 -1 WITHSCORES
1) "baidu.com"
2) "2"
3) "qq.com"
4) "3"
5) "www.twle.cn"
6) "7"
7) "twle.cn"
8) "8"

127.0.0.1:6379> ZRANGE site_t 0 -1 WITHSCORES
1) "tencent.com"
2) "4"
3) "xiaomi.com"
4) "5"
5) "twle.cn"
6) "8"

127.0.0.1:6379> ZUNIONSTORE site_sum 2 site site_t WEIGHTS 1 3 
(integer) 6

127.0.0.1:6379> ZRANGE site_sum 0 -1 WITHSCORES
 1) "baidu.com"
 2) "2"
 3) "qq.com"
 4) "3"
 5) "www.twle.cn"
 6) "7"
 7) "tencent.com"
 8) "12"
 9) "xiaomi.com"
10) "15"
11) "twle.cn"
12) "32"

返回上一级

Redis 基础教程

关于   |   FAQ   |   我们的愿景   |   广告投放   |  博客

  简单教程,简单编程 - IT 入门首选站

Copyright © 2013-2022 简单教程 twle.cn All Rights Reserved.