Redis基本数据结构之ZSet (2)

Redis基本数据结构之ZSet

将如图所示的zset导入redis

交集命令为:zinterstore destination numkeys key [key ...] [weights weight [weight ...]]

[aggregate sum|min|max]

这个命令参数较多,下面分别进行说明:

l destination:交集计算结果保存到这个键。

l numkeys:需要做交集计算键的个数。

l key[key...]:需要做交集计算的键。

l weights weight[weight...]:每个键的权重,在做交集计算时,每个键中的每个member会将自己分数乘以这个权重,每个键的权重默认是1。

l aggregate sum|min|max:计算成员交集后,分值可以按照sum(和)、min(最小值)、max(最大值)做汇总,默认值是sum。

下面操作对user:ranking:1和user:ranking:2做交集,weights和aggregate使用了默认配置,可以看到目标键user:ranking:1_inter_2对分值做了sum操作

Redis基本数据结构之ZSet

(11) 并集

命令为: zunionstore destination numkeys key [key ...] [weights weight [weight ...]] [aggregate sum|min|max]

该命令的所有参数和zinterstore是一致的,只不过是做并集计算,例如下面操作是计算user:ranking:1和user:ranking:2的并集,weights和aggregate使用了默认配置,可以看到目标键user:ranking:1_union_2对分值做了sum操作

Redis基本数据结构之ZSet

(12) 命令时间复杂度

Redis基本数据结构之ZSet

1.1.2 应用场景(排行榜)

有序集合比较典型的使用场景就是排行榜系统。例如视频网站需要对用户上传的视频做排行榜,榜单的维度可能是多个方面的:按照时间、按照播放数量、按照获得的赞数。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpywyx.html