Redis ZREVRANGE命令

Redis ZREVRANGE命令总结

Redis 的 ZREVRANGE 用于返回 有序集 KEY 中,指定区间内的成员。其中成员的位置按 score 值递减(从大到小)来排列。

具有相同 score 值的成员按字典序的逆序排列。除了成员按 score 值递减的次序排列这一点外,ZREVRANGE 命令的其他方面和 ZRANGE 命令一样。

Redis ZREVRANGE命令详解

语法

192.168.98.70:6379> ZREVRANGE KEY start stop [WITHSCORES]

参数

参数 描述
KEY 有序集合的键。
min 要获取的成员的开始区间。
max 要获取的成员的结束区间。

返回值

指定区间内,带有 score 值(可选)的有序集成员的列表。

时间复杂度

O(log(N)+M), N 为有序集的基数,而 M 为结果集的基数。

可用版本

>= 1.2.0

案例

KEY不存在

KEY 不存在,返回空集合

192.168.98.70:6379> EXISTS haicoder (integer) 0 192.168.98.70:6379> ZREVRANGE haicoder 0 10 (empty list or set)

我们首先,使用 EXISTS 命令,判断键为 haicoder 的集合不存在。最后,我们使用 ZREVRANGE 命令,获取不存在的集合的所有元素,返回空集合。

KEY存在

KEY 存在,返回指定区间的元素

192.168.98.70:6379> ZADD haicoder 100 Redis 50 Mongo 200 Mysql 10 SqlServer (integer) 4 192.168.98.70:6379> ZREVRANGE haicoder 0 2 1) "Mysql" 2) "Redis" 3) "Mongo" 192.168.98.70:6379> DEL haicoder (integer) 1

我们首先,使用 ZADD 命令,同时向键为 haicoder 的集合插入元素 Redis,分数为 100,元素 Mongo,分数为 50,元素 Mysql,分数为 200,元素 SqlServer,分数为 10。

最后,我们使用 ZREVRANGE 命令,获取键为 haicoder 的集合下标 0 到 2 的元素列表,元素是按照分数从大到小排序的。

负数索引

负数索引,表示从列表最后一个元素开始往前获取

192.168.98.70:6379> ZADD haicoder 100 Redis 50 Mongo 200 Mysql 10 SqlServer (integer) 4 192.168.98.70:6379> ZREVRANGE haicoder 0 -2 1) "Mysql" 2) "Redis" 3) "Mongo" 192.168.98.70:6379> ZREVRANGE haicoder 0 -1 1) "Mysql" 2) "Redis" 3) "Mongo" 4) "SqlServer" 192.168.98.70:6379> DEL haicoder (integer) 1

我们首先,使用 ZADD 命令,同时向键为 haicoder 的集合插入元素 Redis,分数为 100,元素 Mongo,分数为 50,元素 Mysql,分数为 200,元素 SqlServer,分数为 10。

接着,我们使用 ZREVRANGE 命令,获取键为 haicoder 的集合下标 0 到 -2 的元素列表,即获取第一个元素到倒数第二个元素的列表。

最后,我们使用 ZREVRANGE 命令,获取键为 haicoder 的集合下标 0 到 -1 的元素列表,即获取第一个元素到最后一个元素的列表。

Redis ZREVRANGE命令总结

Redis 的 ZREVRANGE 用于返回有序集 KEY 中,指定区间内的成员。Redis ZREVRANGE 命令语法:

192.168.98.70:6379> ZREVRANGE KEY start stop [WITHSCORES]