" />
文章

Redis ZSET 排行榜相关命令

通过 zadd 命令添加了 6 个元素到 cus_order_set 中

ZADD cus_order_set 112.0 user1 100.0 user2 123.0 user3 100.0 user4 33.0 user5 993.0 user6

查看cus_order_set的数量

ZCARD cus_order_set

查看某个key的值

ZSCORE cus_order_set user1;

倒序所有

ZREVRANGE cus_order_set 0 -1;

正序所有

ZRANGE cus_order_set 0 -1;

倒序前三

ZREVRANGE cus_order_set 0 2;

获取某个人的位置

ZREVRANK  cus_order_set "user3"

给某个人增加or减小

ZINCRBY cus_order_set +2 "user1";
ZINCRBY cus_order_set -1 "user1"

不同set合并计算

并集

ZADD 20350305 112.0 user1 100.0 user2 123.0 user3
ZADD 20350306 80.0 user1 100.0 user4
ZADD 20350307 33.0 user4 993.0 user5

创建并集,计算最后三天的正序

ZUNIONSTORE last_3_days 3 20350305 20350306 20350307
ZRANGE last_3_days 0 -1 WITHSCORES

如果第一个set和第二个set有重复的,默认什么都不写是合并数值,也有其他的计算方式,比如最大值和最小值

● SUM:对于不同集合的相同元素使用和作为结果集中对应元素的score。默认使用 SUM,如果不指定的话。
● MIN:对于不同集合的相同元素使用某个元素最小的score 值作为结果集中对应元素的score。
● MAX:对于不同集合的相同元素使用某个元素最大的score 值作为结果集中对应元素的score

ZUNIONSTORE last_3_days 3 20350305 20350306 20350307 AGGREGATE MAX
ZRANGE last_3_days 0 -1 WITHSCORES

交集

ZINTERSTORE last_3_days 3 20350305 20350306 20350307

合并的时候计算不同的权重

ZADD staff_set 3.0 staff1 4.0 staff2
ZADD manager_set 1.0 manager1 2.0 manager2

合并的时候采用不同的weight

ZUNIONSTORE all_user_set 2 staff_set manager_set WEIGHTS 1 3
ZREVRANGE all_user_set 0 -1 WITHSCORES
License:  CC BY 4.0