美文网首页
zset类型聚合查询

zset类型聚合查询

作者: 闲云野鹤_23dd | 来源:发表于2020-12-18 21:42 被阅读0次

ZUNIONSTORE

语法

ZUNIONSTORE destination numkeys key [key …] [WEIGHTS weight [weight …]] [AGGREGATE SUM|MIN|MAX]

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

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

WEIGHTS

使用 WEIGHTS 选项,你可以为 每个 给定有序集 分别 指定一个乘法因子(multiplication factor),每个给定有序集的所有成员的 score 值在传递给聚合函数(aggregation function)之前都要先乘以该有序集的因子。

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

AGGREGATE

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

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

返回值:
保存到 destination 的结果集的基数。

例子 (WEIGHTS )

redis> ZRANGE programmer 0 -1 WITHSCORES
1) "peter"
2) "2000"
3) "jack"
4) "3500"
5) "tom"
6) "5000"

redis> ZRANGE manager 0 -1 WITHSCORES
1) "herry"
2) "2000"
3) "mary"
4) "3500"
5) "bob"
6) "4000"

redis> ZUNIONSTORE salary 2 programmer manager WEIGHTS 1 3   # 公司决定加薪。。。除了程序员。。。
(integer) 6

redis> ZRANGE salary 0 -1 WITHSCORES
1) "peter"
2) "2000"
3) "jack"
4) "3500"
5) "tom"
6) "5000"
7) "herry"
8) "6000"
9) "mary"
10) "10500"
11) "bob"
12) "12000"

例子 (AGGREGATE)

127.0.0.1:6379[11]> ZADD zset1 1 a 2 b 3 c 
(integer) 3
127.0.0.1:6379[11]> ZADD zset2 3 a 2 b 1 c 
(integer) 3
127.0.0.1:6379[11]> ZUNIONSTORE zsum 2 zset1 zset2 aggregate sum
(integer) 3
127.0.0.1:6379[11]> ZUNIONSTORE zmin 2 zset1 zset2 aggregate min
(integer) 3
127.0.0.1:6379[11]> ZUNIONSTORE zmax 2 zset1 zset2 aggregate max
(integer) 3
127.0.0.1:6379[11]> ZRANGE zsum 0 -1 withscores 
1) "a"
2) "4"
3) "b"
4) "4"
5) "c"
6) "4"
127.0.0.1:6379[11]> ZRANGE zmin 0 -1 withscores
1) "a"
2) "1"
3) "c"
4) "1"
5) "b"
6) "2"
127.0.0.1:6379[11]> ZRANGE zmax 0 -1 withscores
1) "b"
2) "2"
3) "a"
4) "3"
5) "c"
6) "3"
127.0.0.1:6379[11]> 

ZINTERSTORE

语法

ZINTERSTORE destination numkeys key [key …] [WEIGHTS weight [weight …]] [AGGREGATE SUM|MIN|MAX]

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

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

关于 WEIGHTS 和 AGGREGATE 选项的描述,参见 ZUNIONSTORE destination numkeys key [key …] [WEIGHTS weight [weight …]] [AGGREGATE SUM|MIN|MAX] 命令。

返回值:
保存到 destination 的结果集的基数。

例子

redis > ZADD mid_test 70 "Li Lei"
(integer) 1
redis > ZADD mid_test 70 "Han Meimei"
(integer) 1
redis > ZADD mid_test 99.5 "Tom"
(integer) 1

redis > ZADD fin_test 88 "Li Lei"
(integer) 1
redis > ZADD fin_test 75 "Han Meimei"
(integer) 1
redis > ZADD fin_test 99.5 "Tom"
(integer) 1

redis > ZINTERSTORE sum_point 2 mid_test fin_test
(integer) 3

redis > ZRANGE sum_point 0 -1 WITHSCORES     # 显示有序集内所有成员及其 score 值
1) "Han Meimei"
2) "145"
3) "Li Lei"
4) "158"
5) "Tom"
6) "199"

相关文章

  • zset类型聚合查询

    ZUNIONSTORE 语法 计算给定的一个或多个有序集的并集,其中给定 key 的数量必须以 numkeys 参...

  • ElasticSearch 7.x 聚合查询

    聚合查询 |ES 的聚合查询和MyQL的聚合查询类型,ES 的聚合查询相比MySQL 要强大的多,ES提供的统计数...

  • ES7学习笔记(十)聚合查询

    聚合查询,它是在搜索的结果上,提供的一些聚合数据信息的方法。比如:求和、最大值、平均数等。聚合查询的类型有很多种,...

  • zset类型

    zset类型 sorted set,有序集合 元素为string类型 元素具有唯⼀性,不重复 每个元素都会关联⼀个...

  • redis(九:数据结构-集合)

    Sorted Set 只支持范围查询,无法直接进行聚合计算(聚合计算是CPU密集型任务)。Set 类型可以进行聚合...

  • Kibana操作ElasticSearch

    对比关系型数据库 Elasticsearch6.0以后删除了Type类型 进入开发工具 查询 聚合查询

  • es7.x(10)aggs聚合查询

    ES聚合查询流程 核心概念2.1 桶2.2 指标 ES聚合查询的语法3.1 聚合查询的size语法 指标聚合4.1...

  • MongoDB聚合查询

    本文为转载,原文:MongoDB聚合查询 聚合查询 MongoDB除了基本的查询功能之外,还提供了强大的聚合功能。...

  • mongoDB 2 聚合查询

    测试数据: 1. 基本总量查询 2. 聚合后的总量查询 3.多聚合的总量查询 4.聚合的多列总量查询

  • redis zset类型

    sorted set 是 set 的一个升级版本,它在 set 的基础上增加了一个顺序属性,和 set 一样 so...

网友评论

      本文标题:zset类型聚合查询

      本文链接:https://www.haomeiwen.com/subject/szuziktx.html