根据分数排序获取成员列表 ZREVRANGEBYSCORE
1 简介
ZREVRANGEBYSCORE
返回有序集合中指定分数区间内的成员,分数由高到低排序。
2 语法
2.1 完整示例
ZREVRANGEBYSCORE key max min WITHSCORES LIMIT offset count
- 1
2.2 说明
指令 | 是否必须 | 说明 |
ZREVRANGEBYSCORE | 是 | 指令 |
key | 是 | 有序集合键名称 |
max | 是 | 最大分数值,可使用”+inf”代替 |
min | 是 | 最小分数值,可使用”-inf”代替 |
WITHSCORES | 否 | 将成员分数一并返回 |
LIMIT | 否 | 返回结果是否分页,指令中包含LIMIT后offset、count必须输入 |
offset | 否 | 返回结果起始位置 |
count | 否 | 返回结果数量 |
提示:
"max"
和"min"
参数前可以加"("
符号作为开头表示小于,"("
符号与成员之间不能有空格- 可以使用
"+inf"
和"-inf"
表示得分最大值和最小值 "max"
和"min"
不能反,"max"
放后面"min"
放前面会导致返回结果为空- 计算成员之间的成员数量不加
"("
符号时,参数"min"
和"max"
的位置也计算在内。 - ZREVRANGEBYSCORE集合中按得分从高到底排序,所以
"max"
在前面,"min"
在后面, ZRANGEBYSCORE集合中按得分从底到高排序,所以"min"
在前面,"max"
在后面。
3 返回值
指定分数范围的元素列表。
4 示例
4.1 按分数倒序返回成员
"+inf"
或者 "-inf"
来表示记录中最大值和最小值。 "("
左括号来表示小于某个值。目前只支持小于操作的 "("
左括号, 右括号(大于)目前还不能支持。
redis> ZADD myzset 1 "one"
(integer) 1
redis> ZADD myzset 2 "two"
(integer) 1
redis> ZADD myzset 3 "three"
(integer) 1
redis> ZREVRANGEBYSCORE myzset +inf -inf
1) "three"
2) "two"
3) "one"
redis> ZREVRANGEBYSCORE myzset 2 1
1) "two"
2) "one"
redis> ZREVRANGEBYSCORE myzset 2 (1
1) "two"
redis> ZREVRANGEBYSCORE myzset (2 (1
(empty list or set)
redis>
ReadApi::redis()->zrevrangebyscore(sprintf(RedisKey::Index, $name), '+inf', '-inf');
ZREVRANGEBYSCORE sport_home::index +inf -inf
ZADD key score member:向有序set中添加元素member,其中score为分数,默认升序;
ZRANGE key start end [WITHSCORES]:获取按score从低到高索引范围内的元素,索引可以是负数,-1表示最后一个,-2表示倒数第二个,即从后往前。withscores可选,表示获取包括分数。
ZREVRANGE key start end [WITHSCORES]:同上,但score从高到低排序。
ZCOUNT key min max:获取score在min和max范围内的元素的个数
ZCARD key:获取集合中元素的个数。
ZINCRBY key increment member:根据元素,score原子增加increment.
ZREMRANGEBYSCORE key min max:清空集合内的score位于min和max之间的元素。
ZRANK key member:获取元素的索引(照score从低到高排列)。
ZREM key member:移除集合中的该元素
ZSCORE key member:获取该元素的score
ZADD sport_home::index 1469606286 29
ZSCORE sport_home::index 29