gpt4 book ai didi

Redis 排序集,获取所有分数小于 x 的成员

转载 作者:IT王子 更新时间:2023-10-29 06:00:35 24 4
gpt4 key购买 nike

在 Redis 中,如何获取所有分数小于 x 的成员?完成该任务的时间复杂度是多少?

最佳答案

您可以使用 ZRANGEBYSCORE redis命令。

例如得分小于4的成员

zadd myset 1 "one"
zadd myset 2 "two"
zadd myset 3 "three"
zadd myset 5 "five"
zadd myset 6 "six"

ZRANGEBYSCORE myset -inf 4

结果:

1) "one"
2) "two"
3) "three"

也适用于分数大于 4

ZRANGEBYSCORE myset 4 +inf

结果:

1) "five"
2) "six"

关于复杂性,由于 redis 文档,它是 O(log(N)+M)

编辑:第二个例子

假设我们有一个在线游戏的记分牌,我们将其存储在 redis 中的有序集合中。以下命令创建此测试

zadd scoreboard 101 "John" 333 "Mary" 323 "Nick" 900 "Steve" 901 "Sam" 333 "Mike"

有资格进入下一轮的玩家是得分低于 330 的玩家。要找到这些玩家,我们运行以下命令。

ZRANGEBYSCORE scoreboard -inf 330

这将导致 2 个玩家(John 和 Nick)

1) "John"
2) "Nick"

进一步解释这个命令:ZRANGEBYSCORE:redis命令,查看文档记分牌:我创建的排序集-inf:是我命令的最低价格330:我命令的最高价

它的作用是找到从-infinite到330这个范围内的所有成员,我理解为330及以下的所有成员。

希望对您有所帮助 :)

关于Redis 排序集,获取所有分数小于 x 的成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13584466/

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