*Redis LRANGE 命令 获取列表指定范围内的元素
*LRANGE
*语法
LRANGE key start stop
*说明
LRANGE 返回列表 key 中指定区间 [start, stop] 内的元素。
- 索引从 0 开始,
0表示第一个元素,1表示第二个元素,以此类推。 - 支持负数索引:
-1表示最后一个元素,-2表示倒数第二个元素,以此类推。 - LRANGE 使用的是闭区间,即
start和stop位置的元素都会被包含在结果中。例如LRANGE list 0 10返回 11 个元素。 - 超出范围的下标不会引起错误:
- 若
start大于列表最大下标,返回空列表。 - 若
stop大于最大下标,Redis 将其自动修正为列表末尾。
- 若
*示例
# 构建列表: ["one", "two", "three"]
redis-cli RPUSH mylist "one"
redis-cli RPUSH mylist "two"
redis-cli RPUSH mylist "three"
# 获取第一个元素
redis-cli LRANGE mylist 0 0
# 获取前两个元素
redis-cli LRANGE mylist 0 1
# 获取整个列表(常用技巧)
redis-cli LRANGE mylist 0 -1
# 使用负数索引获取最后两个元素
redis-cli LRANGE mylist -2 -1
# start 超出范围返回空数组
redis-cli LRANGE mylist 5 10
*返回值
- Array reply:包含指定区间内元素的列表。若区间无交集,返回空数组。
*版本兼容性
| 版本 | 说明 |
|---|---|
| >= 1.0.0 | 可用 |
*时间复杂度
O(S+N),其中 S 为 start 到列表头部的距离(或尾部,取较小值),N 为返回的元素数量。获取完整列表时为 O(N)。