Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 按分数集排序的Redis FIFO?_Java_Redis_Jedis - Fatal编程技术网

Java 按分数集排序的Redis FIFO?

Java 按分数集排序的Redis FIFO?,java,redis,jedis,Java,Redis,Jedis,我正在实施一个先进先出的排队系统,在这个系统中,某些玩家根据他们的排名拥有更高的优先级 我目前设计的系统使用zadd,他们的分数是排名优先级。这一切都很好,因为它会自动按其等级优先级对集合排序。然后我用zpopmin抓住第一个得分最低的人。它正确地抓住了得分最低的人,但正如你所猜测的,没有先进先出的优先权。以与其他人相同优先级加入队列的玩家有随机进入的机会,而不是首先加入队列的玩家 我想改为使用,但没有按分数排序。我觉得如果我使用这个方法,每次我去检索队列中的第一个人时,我都必须按照他们的排名对

我正在实施一个先进先出的排队系统,在这个系统中,某些玩家根据他们的排名拥有更高的优先级

我目前设计的系统使用zadd,他们的分数是排名优先级。这一切都很好,因为它会自动按其等级优先级对集合排序。然后我用zpopmin抓住第一个得分最低的人。它正确地抓住了得分最低的人,但正如你所猜测的,没有先进先出的优先权。以与其他人相同优先级加入队列的玩家有随机进入的机会,而不是首先加入队列的玩家

我想改为使用,但没有按分数排序。我觉得如果我使用这个方法,每次我去检索队列中的第一个人时,我都必须按照他们的排名对整个队列进行排序,而lindex将是错误的,因为没有排序


有没有关于如何处理这样一个系统的建议?

当多个元素具有相同的分数时,redis排序集按字典顺序排列。但是,如果我正确理解了您的问题,您基本上希望按插入时间而不是按字典顺序对它们进行排序。如果这是您想要的,您可以将时间戳添加到排序项目元素的开头,如下所示:

ZADD myzset 1 1593281577266:useroneid

ZADD myzset 1 1593281577467:usertwoid


让我知道这是否是您想要的。

当多个元素具有相同的分数时,redis排序集按字典顺序排列。但是,如果我正确理解了您的问题,您基本上希望按插入时间而不是按字典顺序对它们进行排序。如果这是您想要的,您可以将时间戳添加到排序项目元素的开头,如下所示:

ZADD myzset 1 1593281577266:useroneid

ZADD myzset 1 1593281577467:usertwoid

如果这是你想要的,请告诉我