Redis 列表分页查询 LRange 指令
Redis 列表是一种简单的字符串列表,用于存储字符串元素,它们以插入顺序存储,可以通过索引获取元素,索引从 0 开始。Redis 列表提供了 LRange 指令,用于从列表中获取一定范围的元素,可以用于分页查询。使用方法
LRANGE key start stop
其中,key 是需要查询的列表,start 是起始索引,stop 是结束索引,都是从 0 开始计算,均可以为负数,表示从列表一个元素开始计算,-1 表示一个元素,-2 表示倒数第二个元素,依次类推。
如果 start 索引大于列表最大索引,或者 start > stop,则返回空列表;如果 stop 索引大于列表最大索引,则返回从 start 到一个元素的子列表。
redis> lpush list a b c d (integer) 4 redis> lrange list 0 -1 1) "d" 2) "c" 3) "b" 4) "a" redis> lrange list 1 3 1) "c" 2) "b" 3) "a" redis> lrange list 0 0 1) "d" redis> lrange list 0 4 1) "d" 2) "c" 3) "b" 4) "a" redis> lrange list -2 -1 1) "b" 2) "a" redis> lrange list -4 -2 1) "d" 2) "c" 3) "b"
可以看到,当 start > stop 时,返回空列表;当 stop 大于列表最大索引时,返回从 start 到一个元素的子列表。
使用 LRange 指令可以很方便地从 Redis 列表中获取指定范围的元素,这对于分页查询来说非常有用,可以灵活地控制获取的元素范围,实现分页查询效果。