*Redis LRANGE 命令 获取列表指定范围内的元素

*LRANGE

*语法

LRANGE key start stop

*说明

LRANGE 返回列表 key 中指定区间 [start, stop] 内的元素。

  • 索引从 0 开始,0 表示第一个元素,1 表示第二个元素,以此类推。
  • 支持负数索引:-1 表示最后一个元素,-2 表示倒数第二个元素,以此类推。
  • LRANGE 使用的是闭区间,即 startstop 位置的元素都会被包含在结果中。例如 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)。