gpt4 book ai didi

sorting - Redis:将多个 HSET 排序集分组并汇总为一个排序集

转载 作者:IT王子 更新时间:2023-10-29 06:03:23 26 4
gpt4 key购买 nike

如果我有两个排序集,具有不同分数的不同成员集:

ZADD set1 10 "player1"
ZADD set1 15 "player2"
ZADD set1 5 "player3"

ZADD set2 30 "player1"
ZADD set2 22 "player3"

我需要通过将所有玩家的共同分组并总结他们的分数来合并上述 2 组,并得到这样的结果:

set3 40 "player1"
set3 15 "player2"
set3 27 "player3"

我尝试过的一种方法是将这些数据提取到 Ruby 对象中并执行分组逻辑。我正在寻找在 Redis 中执行此操作的方法。

最佳答案

你很幸运,因为 redis 支持开箱即用!

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

summary: Intersect multiple sorted sets and store the resulting sorted set in a new key

所以在你的情况下:

ZINTERSTORE set3 2 set1 set2 AGGREGATE SUM

瞧! set3 包含具有总分的普通玩家:

127.0.0.1:6379> ZRANGE set3 0 -1 WITHSCORES
1) "player3"
2) "27"
3) "player1"
4) "40"

关于sorting - Redis:将多个 HSET 排序集分组并汇总为一个排序集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35600999/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com