gpt4 book ai didi

Redis:根据哈希字段值从排序集中排除值

转载 作者:IT王子 更新时间:2023-10-29 05:57:28 24 4
gpt4 key购买 nike

我想知道是否有人可以就如何更高效地生成排序集提供一些建议?

我正在从事一个项目,其中排名数据按小时计算并存储在数据库中。数据可以按成员性别、国家等进行过滤。大约有200万行需要处理,需要很长时间。

我们希望转向一种更实时的方法,即在 Redis 中存储/排序/过滤数据并进行每日清理重建。

在我的原型(prototype)中,我正在为每个可能的过滤器组合创建一个排序集,例如:leaderboard.au.male、leaderboard.au.female 等。我已经编写了这个过程的脚本,但是一旦你处理了每一个案例,它就意味着那里创建了 118 个排序集。

理想情况下,我希望每个成员都有一个排名排序集和散列集,其中包含他们的姓名、性别和国家/地区。然后使用 Redis 仅返回基于用户定义的过滤器的排序集值。 (例如,只获得来自澳大利亚的男性的排名)。

这可以在 Redis 中本地完成吗?

最佳答案

我建议你为所有成员保留一个排名集:

leaderboard = { id1: score1, id2: score2, ... }

以及每种类型(性别、国家等)的集合:

members.male = { id1, id2, ... }
members.au = { id2, id3, ... }

然后,你做一个ZINTERSTORE :

zinterstore leaderboard.male 2 leaderboard members.male

或者,获取男性 AU 成员的排行榜:

zinterstore leaderboard.au.male 3 leaderboard members.male members.au

您可以使用 WEIGHTSAGGREGATE 控制如何计算结果排序集的得分。

如果您不想长期保留结果集,则可以EXPIRE 它们,并且只构建一个不存在的新集。

关于Redis:根据哈希字段值从排序集中排除值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9900879/

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