Redis 的 ZREVRANGE 用于返回 有序集 KEY 中,指定区间内的成员。其中成员的位置按 score 值递减(从大到小)来排列。
具有相同 score 值的成员按字典序的逆序排列。除了成员按 score 值递减的次序排列这一点外,ZREVRANGE 命令的其他方面和 ZRANGE 命令一样。
192.168.98.70:6379> ZREVRANGE KEY start stop [WITHSCORES]
参数 | 描述 |
---|---|
KEY | 有序集合的键。 |
min | 要获取的成员的开始区间。 |
max | 要获取的成员的结束区间。 |
指定区间内,带有 score 值(可选)的有序集成员的列表。
O(log(N)+M), N 为有序集的基数,而 M 为结果集的基数。
>= 1.2.0
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 存在,返回指定区间的元素
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 用于返回有序集 KEY 中,指定区间内的成员。Redis ZREVRANGE 命令语法:
192.168.98.70:6379> ZREVRANGE KEY start stop [WITHSCORES]