gpt4 book ai didi

java - Redis FIFO按分数集排序?

转载 作者:行者123 更新时间:2023-12-03 06:41:09 27 4
gpt4 key购买 nike

我正在实现先进先出队列系统,其中某些球员根据他们的排名享有更高的优先级。
我目前设计的系统使用zadd,其得分为等级优先级。一切正常,因为它会根据其优先级自动对集合进行排序。然后,我使用zpopmin捕获得分最低的第一个人。它正确地捕获了得分最低的人,但是您可以猜到,没有先进先出的优先级。以与其他人相同的优先级加入队列的玩家有随机进入的机会,而不是先加入队列的人。
我考虑过改用https://redis.io/commands#list,但没有按“得分”进行排序。我觉得如果我使用过的话,每次去检索队列中的第一个人时,都必须按队列对整个队列进行排序,由于没有排序,所以lindex是错误的。
关于如何处理这样的系统有什么建议吗?

最佳答案

当多个元素具有相同的分数时,按字典顺序对redis排序集进行排序。但是,如果我正确地理解了您的问题,那么您基本上希望按插入时间而不是按字典顺序对其进行排序。如果这是您想要的,可以将时间戳记添加到已排序项的元素的开头,如下所示:ZADD myzset 1 "1593281577266:useroneid"ZADD myzset 1 "1593281577467:usertwoid"让我知道这是否是您想要的。

关于java - Redis FIFO按分数集排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62613366/

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