Redis rpush lpop lrange 的使用

lys2018年01月15日 0条评论

1.Redis rpush lpop lrange 的使用

Redis Rpush 命令用于将一个或多个值插入到列表的尾部(最右边)。

如果列表不存在,一个空列表会被创建并执行 RPUSH 操作。 当列表存在但不是列表类型时,返回一个错误。

注意:在 Redis 2.4 版本以前的 RPUSH 命令,都只接受单个 value 值。

语法

redis Rpush 命令基本语法如下:

redis 127.0.0.1:6379> RPUSH KEY_NAME VALUE1..VALUEN

可用版本

>= 1.0.0

返回值

执行 RPUSH 操作后,列表的长度。

实例

redis 127.0.0.1:6379> RPUSH mylist "hello"(integer) 1
redis 127.0.0.1:6379> RPUSH mylist "foo"(integer) 2
redis 127.0.0.1:6379> RPUSH mylist "bar"(integer) 3
redis 127.0.0.1:6379> LRANGE mylist 0 -1
1) "hello"
2) "foo"
3) "bar"
redis> LPOP mylist  # 移除头元素
"hello"

2.LPOP 的使用


删除并返回存储在列表中的第一个元素key

返回值

返回mylist第一元素的值,当key不存在时或者没值时返回nil


3.使用 LRANGE 查看mylist值

LRANGE key start stop

返回列表 key 中指定区间内的元素,区间以偏移量 start 和 stop 指定。

下标(index)参数 start 和 stop 都以 0 为底,也就是说,以 0 表示列表的第一个元素,以 1 表示列表的第二个元素,以此类推。

你也可以使用负数下标,以 -1 表示列表的最后一个元素, -2 表示列表的倒数第二个元素,以此类推。

注意LRANGE命令和编程语言区间函数的区别

假如你有一个包含一百个元素的列表,对该列表执行 LRANGE list 0 10 ,结果是一个包含11个元素的列表,这表明 stop 下标也在 LRANGE命令的取值范围之内(闭区间),这和某些语言的区间函数可能不一致,比如Ruby的 Range.new 、 Array#slice 和Python的 range() 函数。

超出范围的下标

超出范围的下标值不会引起错误。

如果 start 下标比列表的最大下标 end ( LLEN list 减去 1 )还要大,那么 LRANGE 返回一个空列表。

如果 stop 下标比 end 下标还要大,Redis将 stop 的值设置为 end 。

  • 可用版本:

  • >= 1.0.0

  • 时间复杂度:

  • O(S+N), S 为偏移量 start , N 为指定区间内元素的数量。

  • 返回值:

  • 一个列表,包含指定区间内的元素。

转载参考:

http://www.runoob.com/redis/lists-rpush.html

http://redisdoc.com/list/lrange.html