在一些业务开发中,我们希望从 redis 的有序列表(zset)中获取分数(score)最大或最小的元素成员(member),我们可以使用 ZRANGEBYSCORE
和 ZREVRANGEBYSCORE
命令。
我们知道 redis zset 的 score 存储数据结构是跳跃表(skiplist),它非常便于快速查询,最大最小值的定位更加简洁,一个是跳跃表的起始位置,另一个是跳跃表的结束位置。
具体命令
寻找最小 score 的成员(member),命令如下:
ZRANGEBYSCORE myzset -inf +inf WITHSCORES LIMIT 0 1
寻找最大 score 的成员(member),命令如下:
ZREVRANGEBYSCORE myzset +inf -inf WITHSCORES LIMIT 0 1