Java 按分数集排序的Redis FIFO?
我正在实施一个先进先出的排队系统,在这个系统中,某些玩家根据他们的排名拥有更高的优先级 我目前设计的系统使用zadd,他们的分数是排名优先级。这一切都很好,因为它会自动按其等级优先级对集合排序。然后我用zpopmin抓住第一个得分最低的人。它正确地抓住了得分最低的人,但正如你所猜测的,没有先进先出的优先权。以与其他人相同优先级加入队列的玩家有随机进入的机会,而不是首先加入队列的玩家 我想改为使用,但没有按分数排序。我觉得如果我使用这个方法,每次我去检索队列中的第一个人时,我都必须按照他们的排名对整个队列进行排序,而lindex将是错误的,因为没有排序Java 按分数集排序的Redis FIFO?,java,redis,jedis,Java,Redis,Jedis,我正在实施一个先进先出的排队系统,在这个系统中,某些玩家根据他们的排名拥有更高的优先级 我目前设计的系统使用zadd,他们的分数是排名优先级。这一切都很好,因为它会自动按其等级优先级对集合排序。然后我用zpopmin抓住第一个得分最低的人。它正确地抓住了得分最低的人,但正如你所猜测的,没有先进先出的优先权。以与其他人相同优先级加入队列的玩家有随机进入的机会,而不是首先加入队列的玩家 我想改为使用,但没有按分数排序。我觉得如果我使用这个方法,每次我去检索队列中的第一个人时,我都必须按照他们的排名对
有没有关于如何处理这样一个系统的建议?当多个元素具有相同的分数时,redis排序集按字典顺序排列。但是,如果我正确理解了您的问题,您基本上希望按插入时间而不是按字典顺序对它们进行排序。如果这是您想要的,您可以将时间戳添加到排序项目元素的开头,如下所示: ZADD myzset 1 1593281577266:useroneid ZADD myzset 1 1593281577467:usertwoid
让我知道这是否是您想要的。当多个元素具有相同的分数时,redis排序集按字典顺序排列。但是,如果我正确理解了您的问题,您基本上希望按插入时间而不是按字典顺序对它们进行排序。如果这是您想要的,您可以将时间戳添加到排序项目元素的开头,如下所示: ZADD myzset 1 1593281577266:useroneid ZADD myzset 1 1593281577467:usertwoid 如果这是你想要的,请告诉我