PHP-redis命令之 列表(lists)

Posted 邹喆

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP-redis命令之 列表(lists)相关的知识,希望对你有一定的参考价值。

三、列表(lists)

1.lpush:将所有指定的值插入到存于 key 的列表的头部。如果 key 不存在,那么在进行 push 操作前会创建一个空列表。 如果 key 对应的值不是一个 list 的话,那么会返回一个错误。

可以使用一个命令把多个元素 push 进入列表,只需在命令末尾加上多个指定的参数。元素是从最左端的到最右端的、一个接一个被插入到 list 的头部。 所以对于这个命令例子 LPUSH mylist a b c,返回的列表是 c 为第一个元素, b 为第二个元素, a 为第三个元素。

  $redis->lpush(‘mylist‘,‘word‘,‘b‘,‘c‘);

   $redis->lrange(‘mylist‘,0,-1); //输出 array(3) { [0]=> string(1) "c" [1]=> string(1) "b" [2]=> string(4) "word" }

2.lpushx:只有当 key 已经存在并且存着一个 list 的时候,在这个 key 下面的 list 的头部插入 value。 与 LPUSH 相反,当 key 不存在的时候不会进行任何操作。

   $redis->lpush(‘mylist‘,‘word‘,‘b‘,‘c‘); //输出 int(3)
   $redis->lpushx(‘motherlist‘,‘22‘); //输出 int(0)

3.rpush:向存于 key 的列表的尾部插入所有指定的值。如果 key 不存在,那么会创建一个空的列表然后再进行 push 操作。 当 key 保存的不是一个列表,那么会返回一个错误。

可以使用一个命令把多个元素打入队列,只需要在命令后面指定多个参数。元素是从左到右一个接一个从列表尾部插入。 比如命令 RPUSH mylist a b c 会返回一个列表,其第一个元素是 a ,第二个元素是 b ,第三个元素是 c。

  $redis->rpush(‘mylist‘,‘word‘,‘b‘,‘c‘);  

  $redis->lrange(‘mylist‘,0,-1); //输出 array(3) { [0]=> string(1) "word" [1]=> string(1) "b" [2]=> string(4) "c" }

4.rpushx:将值 value 插入到列表 key 的表尾, 当且仅当 key 存在并且是一个列表。 和 RPUSH 命令相反, 当 key 不存在时,RPUSHX 命令什么也不做。

  $redis->rpush(‘mylist‘,‘word‘,‘b‘,‘c‘); //输出 int(3)
   $redis->rpushx(‘motherlist‘,‘22‘); //输出 int(0)

5.lpop:移除并且返回 key 对应的 list 的第一个元素。

  $redis->lpush(‘mylist‘,‘word‘,‘b‘,‘c‘);

  $redis->lpop(‘mylist‘);//输出 string(1) "c"

6.rpop:移除并返回存于 key 的 list 的最后一个元素。

  $redis->lpush(‘mylist‘,‘word‘,‘b‘,‘c‘);

  $redis->rpop(‘mylist‘);//输出 string(1) "word"

7.lset:设置 index 位置的list元素的值为 value。当index超出范围时会返回一个error(相对于修改元素的value)。

  $reids->lset(‘mylist‘,0,‘pp‘);//输出 array(3) { [0]=> string(2) "pp" [1]=> string(1) "b" [2]=> string(4) "word" }

8.llen:返回存储在 key 里的list的长度。 如果 key 不存在,那么就被看作是空list,并且返回长度为 0。 当存储在 key 里的值不是一个list的话,会返回error。

  $redis->llen(‘mylist‘);//输出 int(3)

9.lindex:返回列表里的元素的索引 index 存储在 key 里面。 下标是从0开始索引的,所以 0 是表示第一个元素, 1 表示第二个元素,并以此类推。 负数索引用于指定从列表尾部开始索引的元素。在这种方法下,-1 表示最后一个元素,-2 表示倒数第二个元素,并以此往前推。当 key 位置的值不是一个列表的时候,会返回一个error。

  $redis->lindex(‘mylist‘,0);//输出 string(2) "pp"

10.linsert:把 value 插入存于 key 的列表中在基准值 pivot 的前面或后面。当 key 不存在时,这个list会被看作是空list,任何操作都不会发生。当 key 存在,但保存的不是一个list的时候,会返回error。

  $redis->linsert(‘mylist‘,);







以上是关于PHP-redis命令之 列表(lists)的主要内容,如果未能解决你的问题,请参考以下文章

PHP-redis命令之 strings (字符串)

根据对象列表生成新卡片

redis命令之 ----List(列表)

Redis之List

php-Redis 常用命令专题

Python操作redis系列之 列表(list)