https://www.nowcoder.com/feed/main/detail/f371f637fa3b4f15a77ae358019d1e65?sourceSSR=users
ZRANGEBYSCORE myzset 20 20
ZRANK myzset member2
通过这两个步骤找到分数对应的排名的总时间复杂度为 O(log(N))
在 Redis 中,zset
(有序集合)是一种数据结构,可以用来实现存储和查询元素分数及其排名的功能。zset
按照分数对元素进行排序,并且提供了一些常用的操作,比如添加元素、获取元素排名等。
要实现传入一个分数,返回这个分数对应的排名,可以使用以下步骤:
添加元素到有序集合:
使用 ZADD
命令添加元素到有序集合,并设置分数。
ZADD myzset score1 member1
ZADD myzset score2 member2
ZADD myzset score3 member3
获取分数对应的排名:
使用 ZRANK
命令获取元素的排名。ZRANK
命令返回元素在有序集合中的排名(从 0 开始)。
ZRANK myzset member1
假设有一个有序集合 myzset
,其中包含以下元素及其分数:
Member | Score |
---|---|
member1 | 10 |
member2 | 20 |
member3 | 30 |
使用 Redis CLI 命令:
# 添加元素到有序集合
ZADD myzset 10 member1
ZADD myzset 20 member2
ZADD myzset 30 member3
# 获取元素的排名
ZRANK myzset member1
如果你想传入一个分数并获取这个分数对应的排名,可以通过以下步骤: