原文
http://redis.io/commands/zrangebyscore
简介
Return a range of members in a sorted set, by score.
根据分数,返回有序集合中一定范围内的元素。
语法
ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]
版本
Available since 1.0.5.
自1.0.5版本可用。
时间复杂度
Time complexity: O(log(N)+M) with N being the number of elements in the sorted set and M the number of elements being returned. If M is constant (e.g. always asking for the first 10 elements with LIMIT), you can consider it O(log(N)).
O(log(N)+M):N是有序集合中元素的数量,M是返回的元素的数量。如果M是常量,你可以认为时间复杂度为O(log(N))。
描述
Returns all the elements in the sorted set at key with a score between min and max (including elements with score equal to min or max). The elements are considered to be ordered from low to high scores.
返回有序集合中分数在min和max之间的所有元素(包含分数等于min或max的元素)。这些元素被认为是按照分数由低到高排序。
The elements having the same score are returned in lexicographical order (this follows from a property of the sorted set implementation in Redis and does not involve further computation).
对于分数相同的元素按照词典顺序返回。
The optional LIMIT argument can be used to only get a range of the matching elements (similar to SELECT LIMIT offset, count in SQL). Keep in mind that if offset is large, the sorted set needs to be traversed for offset elements before getting to the elements to return, which can add up to O(N) time complexity.
LIMIT参数可以被用于仅仅获取一定范围内匹配的元素(类似于SQL语句SELECT LIMIT offset, count)。请牢记,如果offset比较大,在获取返回的元素之前,有序集合需要穿过offset个元素,时间复杂度需要加上O(N)。
The optional WITHSCORES argument makes the command return both the element and its score, instead of the element alone. This option is available since Redis 2.0.
参数WITHSCORES使这个命令返回元素和它的分数,而不仅仅返回元素。这个选项自Redis 2.0可用。
Exclusive intervals and infinity
min and max can be -inf and +inf, so that you are not required to know the highest or lowest score in the sorted set to get all elements from or up to a certain score.
min和max可以是-inf和+inf,因此你不需要知道有序集合中最高分数和最低分数也可以获取从一定分数开始或者达到一定分数结束的所有元素。
By default, the interval specified by min and max is closed (inclusive). It is possible to specify an open interval (exclusive) by prefixing the score with the character (. For example:
默认情况下,min和max是包含在内的。可以通过在分数前面添加(来指定一个开区间(即不包含在内)。
ZRANGEBYSCORE zset (1 5
Will return all elements with 1 < score <= 5 while:
将返回分数大于1且小于等于5的所有元素。
ZRANGEBYSCORE zset (5 (10
Will return all the elements with 5 < score < 10 (5 and 10 excluded).
将返回分数大于5且小于10的所有元素。
返回值
Array reply: list of elements in the specified score range (optionally with their scores).
Array:指定分数范围内的元素列表。
例子
redis> ZADD myzset 1 "one"
(integer) 1
redis> ZADD myzset 2 "two"
(integer) 1
redis> ZADD myzset 3 "three"
(integer) 1
redis> ZRANGEBYSCORE myzset -inf +inf
1) "one"
2) "two"
3) "three"
redis> ZRANGEBYSCORE myzset 1 2
1) "one"
2) "two"
redis> ZRANGEBYSCORE myzset (1 2
1) "two"
redis> ZRANGEBYSCORE myzset (1 (2
(empty list or set)
redis>
相关推荐
有序集合结合了集合和列表的特点,既可以进行排序,又能保持元素的唯一性,是Redis中非常强大且灵活的数据结构。在实际应用中,根据具体需求,合理选择列表、集合或有序集合,可以有效提高数据处理的效率和存储的...
在这个实战项目中,我们将深入探讨Redis有序集合类型(SortedSet)的常用命令,并通过Java实现商品管理功能,包括增删改查和分类查找,以及根据浏览量进行排序。 首先,我们来了解下Redis有序集合的基础知识。有序...
`phpredis`扩展提供了全面的Redis命令支持,包括数据结构如字符串(Strings)、哈希表(Hashes)、列表(Lists)、集合(Sets)和有序集合(Sorted Sets),以及发布/订阅(Publish/Subscribe)、事务...
`向有序集合添加元素并指定分数,`$redis->zRangeByScore('zsetKey', 0, 100);`按分数范围获取成员。 四、实战应用 1. 缓存:利用Redis的快速读写特性,可以作为Web应用的数据缓存,提高系统性能。 2. 分布式锁:...
Redis是一个开源的高性能键值对数据库,它支持多种类型的数据结构,如字符串(strings)、哈希(hashes)、列表(lists)、集合(sets)、有序集合(sorted sets)和范围查询、位图、超日志和地理空间索引等。Redis...
在Redis中,可以使用许多命令来处理不同类型的键值对,如字符串(string)、哈希表(hash)、列表(list)、集合(set)、有序集合(sorted set)等。Redis还支持发布/订阅、事务、脚本等高级功能。下面将详细介绍...
ZRANGEBYSCORE key min max 返回所有符合score >= min和score 的成员 ZCARD key 返回有序集合的元素数量 ZSCORE key element 返回指定成员的SCORE值 ZREMRANGEBYSCORE key min max 删除符合 score >= min 和 score ...
- **范围操作**:如`LINDEX key index`(获取列表指定位置元素)、`LRANGE key start stop`(获取列表部分元素)、`ZRANGEBYSCORE key min max [WITHSCORES]`(根据分数获取有序集合成员)。 - **事务处理**:`...
`redis->zAdd()`用于添加元素并指定分数,`redis->zRangeByScore()`按分数范围获取元素,`redis->zRank()`和`redis->zRevRank()`分别返回元素的排名和降序排名。 在压缩包中,每个数据类型应该对应一个文件,比如:...
- **ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]**:返回有序集合`key`中所有成员的分数值在给定值之间的成员。 - **ZREVRANGEBYSCORE key max min [WITHSCORES] [LIMIT offset count]**:返回...
Redis 有序集合(Sorted Set)是一种特殊的集合数据结构,它结合了集合的无重复成员特性与分数的概念,可以根据成员的分数进行排序。有序集合中的每个成员都有一个与之关联的double类型的分数,这个分数用于决定成员...
` 添加成员到有序集合,并设置分数,`$scoreAndMember = $redis->zRangeByScore('zsetKey', 0, 100);` 获取分数范围内的成员。 9. 发布与订阅:`$redis->subscribe(array('channel'), function ($redis, $channel, ...
- **返回给定分数区间的元素**:`ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]`命令返回有序集合中指定分数范围内的成员。 - **返回集合中score在给定区间的数量**:`ZCOUNT key min max`命令返回...
Redis支持多种数据结构,如集合(Set)、有序集合(Sorted Set)和列表(List)。例如,创建一个集合并添加元素: ```php $redis->sAdd('mySet', 'element1', 'element2'); $members = $redis->sMembers('mySet'); `...
总之,Redis的有序集合是实现排行榜功能的理想工具,它提供的命令和特性能够满足游戏排行榜的各种需求,并且在性能上远胜于传统的数据库解决方案。通过熟练掌握这些命令,开发者可以构建出高效、响应迅速的排行榜...
Redis是一个开源的基于内存的高性能key-value数据库,由C语言编写,支持多种数据结构,包括strings(字符串)、hashes(哈希)、lists(列表)、sets(集合)、sorted sets(有序集合)。Redis既可以作为数据库使用...
PHP Redis 扩展使得开发者能够方便地在 PHP 脚本中操作 Redis 数据结构,如字符串、哈希、列表、集合和有序集合等。 **安装与配置** 安装 PHP Redis 扩展通常需要以下步骤: 1. 下载最新版本的 PECL 包(PHP 的...
8. 使用有序集合(Sorted Set): ```php $redis->zAdd('scoreSetName', 100, 'member1'); $redis->zAdd('scoreSetName', 200, 'member2'); $scoresAndMembers = $redis->zRangeByScore('scoreSetName', 0, 100)...
2. **全面支持Redis命令**:phpredis覆盖了Redis的所有主要命令,包括字符串、哈希、列表、集合、有序集合等数据类型的操作。 3. **连接池**:支持连接池管理,减少建立和关闭连接的开销,提高系统响应速度。 4. **...