1、LPUSH

Redis Lpush 命令将一个或多个值插入到列表头部。 如果 key 不存在,一个空列表会被创建并执行 LPUSH 操作。 当 key 存在但不是列表类型时,返回一个错误。(在Redis 2.4版本以前的 LPUSH 命令,都只接受单个 value 值。)

语法:

redis 127.0.0.1:6379> LPUSH KEY_NAME VALUE1.. VALUEN

返回值: 执行 LPUSH 命令后,列表的长度。

可用版本: >= 1.0.0

时间复杂度:O(1)

具体实例:

<?php
$redis = new redis();
$redis -> connect('127.0.0.1',6379);
$redis -> flushAll(); var_dump($redis -> lPush('favorite_fruit','cherry')); // key 不存在,创建一个新的列表, 返回 int 1
var_dump($redis -> lPush('favorite_fruit','banana')); // key 存在。但是 list 类型, 返回 int 2 $redis -> set('pats','dog');
var_dump($redis -> lPush('pats','cat')); // key 存在。但不是是 list 类型, 返回 boolean false

2、LPUSHX

Redis Lpushx 将一个或多个值插入到已存在的列表头部,列表不存在时操作无效。

语法:

redis 127.0.0.1:6379> LPUSHX KEY_NAME VALUE1.. VALUEN

返回值: LPUSHX 命令执行之后,列表的长度。

可用版本: >= 2.2.0

时间复杂度:O(1)

具体实例:

<?php
$redis = new redis();
$redis -> connect('127.0.0.1',6379);
$redis -> flushAll(); var_dump($redis -> rPush('favorite_fruit','cherry'));
var_dump($redis -> rPush('favorite_fruit','banana'));
var_dump($redis -> lPushx('favorite_fruit','apple')); // 返回 int 3
var_dump($redis -> lRange('favorite_fruit',0,-1));
// array (size=3)
// 0 => string 'apple' (length=5)
// 1 => string 'cherry' (length=6)
// 2 => string 'banana' (length=6) var_dump($redis -> lPushx('fake_key','invalid_val')); // 列表不存在时操作无效返回 int (0)

3、RPUSH

  Redis Rpush 命令用于将一个或多个值插入到列表的尾部(最右边)。如果列表不存在,一个空列表会被创建并执行 RPUSH 操作。 当列表存在但不是列表类型时,返回一个错误。(注意:在 Redis 2.4 版本以前的 RPUSH 命令,都只接受单个 value 值)。

语法:

redis 127.0.0.1:6379> RPUSH KEY_NAME VALUE1..VALUEN

返回值: 执行 RPUSH 操作后,列表的长度。

可用版本: >= 1.0.0

时间复杂度:O(1)

具体实例:

<?php
$redis = new redis();
$redis -> connect('127.0.0.1',6379);
$redis -> flushAll(); var_dump($redis -> rPush('favorite_fruit','cherry')); // key 不存在,创建一个新的列表, 返回 int 1
var_dump($redis -> rPush('favorite_fruit','banana')); // key 存在。但是 list 类型, 返回 int 2 $redis -> set('pats','dog');
var_dump($redis -> rPush('pats','cat')); // key 存在。但不是是 list 类型, 返回 boolean false

4、RPUSHX

  Redis Rpushx 命令用于将一个或多个值插入到已存在的列表尾部(最右边)。如果列表不存在,操作无效。

语法:

redis 127.0.0.1:6379> RPUSHX KEY_NAME VALUE1..VALUEN

返回值:执行 Rpushx 操作后,列表的长度。

可用版本: >= 2.2.0

时间复杂度:O(1)

具体实例:

<?php
$redis = new redis();
$redis -> connect('127.0.0.1',6379);
$redis -> flushAll(); var_dump($redis -> lPush('favorite_fruit','cherry'));
var_dump($redis -> lPush('favorite_fruit','banana'));
var_dump($redis -> rPushx('favorite_fruit','apple')); // 返回 int 3
var_dump($redis -> lRange('favorite_fruit',0,-1));
// array (size=3)
// 0 => string 'banana' (length=6)
// 1 => string 'cherry' (length=6)
// 2 => string 'apple' (length=5) var_dump($redis -> rPushx('fake_key','invalid_val')); // 列表不存在时操作无效返回 int (0)

5、LPOP

   Redis Lpop 命令用于移除并返回列表的第一个元素。

语法:

redis 127.0.0.1:6379> LPOP KEY_NAME

返回值:列表的第一个元素。 当列表 key 不存在时,返回 nil 。

可用版本:>= 1.0.0

时间复杂度:O(1)

具体实例:

<?php
$redis = new redis();
$redis -> connect('127.0.0.1',6379);
$redis -> flushAll(); var_dump($redis -> lPush('favorite_fruit','cherry'));
var_dump($redis -> lPush('favorite_fruit','banana'));
var_dump($redis -> lPush('favorite_fruit','apple'));
var_dump($redis -> lPop('favorite_fruit')); // string apple
var_dump($redis -> lRange('favorite_fruit',0,-1));
// array (size=2)
// 0 => string 'banana' (length=6)
// 1 => string 'cherry' (length=6)

6、RPOP

   Redis Rpop 命令用于移除并返回列表的最后一个元素。

语法:

redis 127.0.0.1:6379> RPOP KEY_NAME

返回值:列表的最后一个元素。 当列表不存在时,返回 nil 。

可用版本:>= 1.0.0

时间复杂度:O(1)

具体实例:

<?php
$redis = new redis();
$redis -> connect('127.0.0.1',6379);
$redis -> flushAll(); $redis -> lPush('favorite_fruit','cherry');
$redis -> lPush('favorite_fruit','banana');
$redis -> lPush('favorite_fruit','apple');
var_dump($redis -> rPop('favorite_fruit')); // string cherry
var_dump($redis -> lRange('favorite_fruit',0,-1));
// array (size=2)
// 0 => string 'apple' (length=5)
// 1 => string 'banana' (length=6)

7、BLPOP

   Redis Blpop 命令移出并获取列表的第一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。

     (1)当给定多个key参数时,按参数key的先后顺序依次检查各个列表,弹出第一个非空列表的头元素。
   (2)超时参数timeout接受一个以秒为单位的数字作为值。超时参数设为0表示阻塞时间可以无限期延长

   (3)在MULTI/EXEC事务中的BLPOP,行为表现得就像LPOP一样,对空列表返回nil,对非空列表弹出列表元素,不进行任何阻塞操作。

语法:

redis 127.0.0.1:6379> BLPOP LIST1 LIST2 .. LISTN TIMEOUT

返回值:如果列表为空,返回一个 nil 。 否则,返回一个含有两个元素的列表,第一个元素是被弹出元素所属的 key ,第二个元素是被弹出元素的值。

可用版本:>= 2.0.0

时间复杂度:O(1)

具体实例:

<?php
$redis = new redis();
$redis -> connect('127.0.0.1',6379);
$redis -> flushAll(); // This first case: 非阻塞行为,最少有一个非空列表
$redis -> lPush('favorite_fruit','cherry');
$redis -> lPush('favorite_fruit','banana');
$redis -> lPush('favorite_fruit','apple'); $redis -> lPush('pats','dog');
$redis -> lPush('pats','cat');
$redis -> lPush('pats','rabbit'); var_dump($redis -> blPop('favorite_fruit',3));
// array (size=2)
// 0 => string 'favorite_fruit' (length=14)
// 1 => string 'apple' (length=5) $array_blpop = array('favorite_fruit','pats');
var_dump($redis -> blPop($array_blpop,3)); // 优先弹出第一个非空列表的头元素
// array (size=2)
// 0 => string 'favorite_fruit' (length=14)
// 1 => string 'banana' (length=6) var_dump($redis -> lRange('favorite_fruit',0,-1));
// array (size=1)
// 0 => string 'cherry' (length=6) // This second case: 阻塞行为, 所有给定key都不存在或包含空列表
var_dump($redis -> blPop('fake_key',2)); // 阻塞链接, 2s 之后超时结束,返回 array (size=0) empty

8、BRPOP

   Redis Brpop 命令移出并获取列表的最后一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。

     (1)当给定多个key参数时,按参数key的先后顺序依次检查各个列表,弹出第一个非空列表的尾部元素。
   (2)超时参数timeout接受一个以秒为单位的数字作为值。超时参数设为0表示阻塞时间可以无限期延长

   (3)在MULTI/EXEC事务中的BLPOP,行为表现得就像RPOP一样,对空列表返回nil,对非空列表弹出列表元素,不进行任何阻塞操作。

语法:

redis 127.0.0.1:6379> BRPOP LIST1 LIST2 .. LISTN TIMEOUT

返回值:假如在指定时间内没有任何元素被弹出,则返回一个 nil 和等待时长。 反之,返回一个含有两个元素的列表,第一个元素是被弹出元素所属的 key ,第二个元素是被弹出元素的值。

可用版本:>= 2.0.0

时间复杂度:O(1)

具体实例:

<?php
$redis = new redis();
$redis -> connect('127.0.0.1',6379);
$redis -> flushAll(); // This first case: 非阻塞行为,最少有一个非空列表
$redis -> lPush('favorite_fruit','cherry');
$redis -> lPush('favorite_fruit','banana');
$redis -> lPush('favorite_fruit','apple'); $redis -> lPush('pats','dog');
$redis -> lPush('pats','cat');
$redis -> lPush('pats','rabbit'); var_dump($redis -> brPop('favorite_fruit',3));
// array (size=2)
// 0 => string 'favorite_fruit' (length=14)
// 1 => string 'cherry' (length=6) $array_brpop = array('favorite_fruit','pats');
var_dump($redis -> brPop($array_brpop,3)); // 优先弹出第一个非空列表的头元素
// array (size=2)
// 0 => string 'favorite_fruit' (length=14)
// 1 => string 'banana' (length=6) var_dump($redis -> lRange('favorite_fruit',0,-1));
// array (size=1)
// 0 => string 'apple' (length=5) // This second case: 阻塞行为, 所有给定key都不存在或包含空列表
var_dump($redis -> brPop('fake_key',2)); // 阻塞链接, 2s 之后超时结束,返回 array (size=0) empty

9、LLEN

  Redis Llen 命令用于返回列表的长度。 如果列表 key 不存在,则 key 被解释为一个空列表,返回 0 。 如果 key 不是列表类型,返回一个错误。

语法:

redis 127.0.0.1:6379> LLEN KEY_NAME

返回值:列表的长度。

可用版本:>= 1.0.0

时间复杂度:O(1)

具体实例:

<?php
$redis = new redis();
$redis -> connect('127.0.0.1',6379);
$redis -> flushAll(); $redis -> lPush('favorite_fruit','cherry');
$redis -> lPush('favorite_fruit','banana');
$redis -> lPush('favorite_fruit','apple'); var_dump($redis -> lLen('favorite_fruit')); // int 3
var_dump($redis -> lLen('fake_key')); // 列表不存在,返回 int 0

10、LRANGE--不会移除元素

  Redis Lrange 返回列表中指定区间内的元素,区间以偏移量 START 和 END 指定。 其中 0 表示列表的第一个元素, 1 表示列表的第二个元素,以此类推。 你也可以使用负数下标,以 -1 表示列表的最后一个元素, -2 表示列表的倒数第二个元素,以此类推。

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

  (2)如果start下标比列表的最大下标end(LLEN list减去1)还要大,或者start > stopLRANGE返回一个空列表。

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

语法:

redis 127.0.0.1:6379> LRANGE KEY_NAME START END

返回值:一个列表,包含指定区间内的元素。

可用版本:>= 1.0.0

时间复杂度:O(S+N),S为偏移量startN为指定区间内元素的数量。

具体实例:

<?php
$redis = new redis();
$redis -> connect('127.0.0.1',6379);
$redis -> flushAll(); $redis -> lPush('favorite_fruit','cherry');
$redis -> lPush('favorite_fruit','banana');
$redis -> lPush('favorite_fruit','apple');
$redis -> lPush('favorite_fruit','peach');
$redis -> lPush('favorite_fruit','pineapple');
$redis -> lPush('favorite_fruit','grape'); var_dump($redis -> lRange('favorite_fruit',1,3));
// array (size=3)
// 0 => string 'pineapple' (length=9)
// 1 => string 'peach' (length=5)
// 2 => string 'apple' (length=5) var_dump($redis -> lRange('favorite_fruit',6,2)); // 当 start > end 时,返回空数组, array (size=0) empty var_dump($redis -> lRange('favorite_fruit',0,100)); // 当 end 大于列表长度时,按 end 值计算
// array (size=6)
// 0 => string 'grape' (length=5)
// 1 => string 'pineapple' (length=9)
// 2 => string 'peach' (length=5)
// 3 => string 'apple' (length=5)
// 4 => string 'banana' (length=6)
// 5 => string 'cherry' (length=6)

11、LREM

  Redis Lrem 根据参数 COUNT 的值,移除列表中与参数 VALUE 相等的元素。

  COUNT 的值可以是以下几种:

  • count > 0 : 从表头开始向表尾搜索,移除与 VALUE 相等的元素,数量为 COUNT 。
  • count < 0 : 从表尾开始向表头搜索,移除与 VALUE 相等的元素,数量为 COUNT 的绝对值。
  • count = 0 : 移除表中所有与 VALUE 相等的值。

语法:

redis 127.0.0.1:6379> LREM KEY_NAME COUNT VALUE

返回值:被移除元素的数量。 列表不存在时返回 0 。

可用版本:>= 1.0.0

时间复杂度:O(N),N为列表的长度。

具体实例:

<?php
$redis = new redis();
$redis -> connect('127.0.0.1',6379);
$redis -> flushAll(); $redis -> lPush('favorite_fruit','cherry');
$redis -> lPush('favorite_fruit','apple');
$redis -> lPush('favorite_fruit','apple');
$redis -> lPush('favorite_fruit','peach');
$redis -> lPush('favorite_fruit','apple');
$redis -> lPush('favorite_fruit','grape'); var_dump($redis -> lRem('favorite_fruit','apple',2)); // int 2 // 从开头向结尾方向移除 2 个
var_dump($redis -> lRange('favorite_fruit',0,-1));
//array (size=4)
// 0 => string 'grape' (length=5)
// 1 => string 'peach' (length=5)
// 2 => string 'apple' (length=5)
// 3 => string 'cherry' (length=6) var_dump($redis -> lRem('favorite_fruit','apple',-1)); // int1 // 从结尾向开头方向移除 1 个
var_dump($redis -> lRange('favorite_fruit',0,-1));
//array (size=3)
// 0 => string 'grape' (length=5)
// 1 => string 'peach' (length=5)
// 2 => string 'cherry' (length=6) var_dump($redis -> lRem('favorite_fruit','peach',0)); // int 1 // 移除所有的 value
var_dump($redis -> lRange('favorite_fruit',0,-1));
//array (size=2)
// 0 => string 'grape' (length=5)
// 1 => string 'cherry' (length=6)

12、LSET

  Redis Lset 通过索引来设置元素的值。当索引参数超出范围,或对一个空列表进行 LSET 时,返回一个错误。

语法:

redis 127.0.0.1:6379> LSET KEY_NAME INDEX VALUE

返回值:操作成功返回 ok ,否则返回错误信息。

可用版本:>= 1.0.0

时间复杂度:对头元素或尾元素进行LSET操作,复杂度为O(1)。其他情况下,为O(N),N为列表的长度。

具体实例:

<?php
$redis = new redis();
$redis -> connect('127.0.0.1',6379);
$redis -> flushAll(); $redis -> lPush('favorite_fruit','cherry');
$redis -> lPush('favorite_fruit','apple');
$redis -> lPush('favorite_fruit','peach');
$redis -> lPush('favorite_fruit','grape'); var_dump($redis -> lSet('favorite_fruit','1','pineapple')); // 将第二个元素替换为 pineapple
var_dump($redis -> lRange('favorite_fruit',0,-1));
// array (size=4)
// 0 => string 'grape' (length=5)
// 1 => string 'pineapple' (length=9)
// 2 => string 'apple' (length=5)
// 3 => string 'cherry' (length=6) var_dump($redis -> lSet('favorite_fruit','100','pitaya')); // boolean false , 对索引超过范围进行设置,设置不成功
var_dump($redis -> lSet('fake_key',1,'mango')); // boolean false , 对不存在的 key 进行设置,设置不成功

13、LTRIM

  Redis Ltrim 对一个列表进行修剪(trim),就是说,让列表只保留指定区间内的元素,不在指定区间之内的元素都将被删除。(下标 0 表示列表的第一个元素,以 1 表示列表的第二个元素,以此类推。 你也可以使用负数下标,以 -1 表示列表的最后一个元素, -2 表示列表的倒数第二个元素,以此类推)。

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

  (2)如果start下标比列表的最大下标end(LLEN list减去1)还要大,或者start > stop,LTRIM返回一个空列表(因为LTRIM已经将整个列表清空)。

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

语法:

redis 127.0.0.1:6379> LTRIM KEY_NAME START STOP

返回值:命令执行成功时,返回 ok 

可用版本:>= 1.0.0

时间复杂度:O(N),N为被移除的元素的数量。

具体实例:

<?php
$redis = new redis();
$redis -> connect('127.0.0.1',6379);
$redis -> flushAll(); $redis -> lPush('favorite_fruit','cherry');
$redis -> lPush('favorite_fruit','apple');
$redis -> lPush('favorite_fruit','peach');
$redis -> lPush('favorite_fruit','grape'); var_dump($redis -> lTrim('favorite_fruit',1,-1));
var_dump($redis -> lRange('favorite_fruit',0,-1));
// array (size=3)
// 0 => string 'peach' (length=5)
// 1 => string 'apple' (length=5)
// 2 => string 'cherry' (length=6) var_dump($redis -> lTrim('favorite_fruit',1,10)); // end > list 的长度,那就将 stop 值设为 end
var_dump($redis -> lRange('favorite_fruit',0,-1));
// array (size=2)
// 0 => string 'apple' (length=5)
// 1 => string 'cherry' (length=6) var_dump($redis -> lTrim('favorite_fruit',7,1)); // start > end 或 start > stop , 清空整个 list
var_dump($redis -> lRange('favorite_fruit',0,-1)); // 返回 array (size=0) empty

14、LINDEX

  Redis Lindex 命令用于通过索引获取列表中的元素。你也可以使用负数下标,以 -1 表示列表的最后一个元素, -2 表示列表的倒数第二个元素,以此类推。

语法:

redis 127.0.0.1:6379> LINDEX KEY_NAME INDEX_POSITION

返回值:列表中下标为指定索引值的元素。 如果指定索引值不在列表的区间范围内,返回 nil 。

可用版本:>= 1.0.0

时间复杂度:O(N),N为到达下标index过程中经过的元素数量对列表的头元素和尾元素执行LINDEX命令,复杂度为O(1)。

具体实例:

<?php
$redis = new redis();
$redis -> connect('127.0.0.1',6379);
$redis -> flushAll(); $redis -> lPush('favorite_fruit','cherry');
$redis -> lPush('favorite_fruit','apple');
$redis -> lPush('favorite_fruit','peach');
$redis -> lPush('favorite_fruit','grape'); var_dump($redis -> lIndex('favorite_fruit',2)); // string 'apple'
var_dump($redis -> lRange('favorite_fruit',0,-1)); // 原 list 表不变
// array (size=4)
// 0 => string 'grape' (length=5)
// 1 => string 'peach' (length=5)
// 2 => string 'apple' (length=5)
// 3 => string 'cherry' (length=6)

15、LINSERT

  Redis Linsert 命令用于在列表的元素前或者后插入元素。 当指定元素不存在于列表中时,不执行任何操作。 当列表不存在时,被视为空列表,不执行任何操作。 如果 key 不是列表类型,返回一个错误。

语法:

redis 127.0.0.1:6379> LINSERT KEY_NAME BEFORE EXISTING_VALUE NEW_VALUE

返回值:如果命令执行成功,返回插入操作完成之后,列表的长度。 如果没有找到指定元素 ,返回 -1 。 如果 key 不存在或为空列表,返回 0 。

可用版本:>= 1.0.0

时间复杂度:O(N),为寻找pivot过程中经过的元素数量。

具体实例:

<?php
$redis = new redis();
$redis -> connect('127.0.0.1',6379);
$redis -> flushAll(); $redis -> lPush('favorite_fruit','cherry');
$redis -> lPush('favorite_fruit','apple');
$redis -> lPush('favorite_fruit','peach');
$redis -> lPush('favorite_fruit','grape'); // The first case : 成功插入,返回列表长度
var_dump($redis -> lInsert('favorite_fruit','before','apple','Mango')); // int 5
var_dump($redis -> lRange('favorite_fruit',0,-1));
//array (size=5)
// 0 => string 'grape' (length=5)
// 1 => string 'peach' (length=5)
// 2 => string 'Mango' (length=5)
// 3 => string 'apple' (length=5)
// 4 => string 'cherry' (length=6) // The seconde case : 没有找到指定元素 ,返回 -1
var_dump($redis -> lInsert('favorite_fruit','before','not_exists','pitaya')); // int -1
var_dump($redis -> lRange('favorite_fruit',0,-1)); // 原 list 不变
//array (size=5)
// 0 => string 'grape' (length=5)
// 1 => string 'peach' (length=5)
// 2 => string 'Mango' (length=5)
// 3 => string 'apple' (length=5)
// 4 => string 'cherry' (length=6) // The third case : 没有找到指定元素 ,返回 0
var_dump($redis -> lInsert('fake_key','before','apple','watermelon')); // int 0

16、RPOPLPUSH

  Redis Rpoplpush 命令用于移除列表的最后一个元素,并将该元素添加到另一个列表并返回。

语法:

redis 127.0.0.1:6379> RPOPLPUSH SOURCE_KEY_NAME DESTINATION_KEY_NAME

返回值:被弹出的元素。

可用版本:>= 1.0.0

时间复杂度:O(1)

具体实例:

<?php
$redis = new redis();
$redis -> connect('127.0.0.1',6379);
$redis -> flushAll(); $redis -> lPush('favorite_fruit','cherry');
$redis -> lPush('favorite_fruit','apple');
$redis -> lPush('favorite_fruit','peach');
$redis -> lPush('favorite_fruit','grape'); // The first case : 若 source 和 desitination 相同,则尾旋转操作
var_dump($redis -> rpoplpush('favorite_fruit','favorite_fruit')); // cherry
var_dump($redis -> lRange('favorite_fruit',0,-1));
//array (size=4)
// 0 => string 'cherry' (length=6)
// 1 => string 'grape' (length=5)
// 2 => string 'peach' (length=5)
// 3 => string 'apple' (length=5) // The second case : 移动操作
var_dump($redis -> rpoplpush('favorite_fruit','other_list')); // apple
var_dump($redis -> lRange('favorite_fruit',0,-1));
//array (size=3)
// 0 => string 'cherry' (length=6)
// 1 => string 'grape' (length=5)
// 2 => string 'peach' (length=5) var_dump($redis -> lRange('other_list',0,-1));
//array (size=1)
// 0 => string 'apple' (length=5)

17、BRPOPLPUSH

  Redis Brpoplpush 命令从列表中弹出一个值,将弹出的元素插入到另外一个列表中并返回它; 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。

  (1)当给定列表source不为空时,BRPOPLPUSH的表现和RPOPLPUSH一样。

  (2)当列表source为空时,BRPOPLPUSH命令将阻塞连接,直到等待超时,或有另一个客户端对source执行LPUSH或RPUSH命令为止。

  (3)超时参数timeout接受一个以秒为单位的数字作为值。超时参数设为0表示阻塞时间可以无限期延长

语法:

redis 127.0.0.1:6379> BRPOPLPUSH LIST1 ANOTHER_LIST TIMEOUT

返回值:假如在指定时间内没有任何元素被弹出,则返回一个 nil 和等待时长。 反之,返回一个含有两个元素的列表,第一个元素是被弹出元素的值,第二个元素是等待时长。

可用版本:>= 2.0.0

时间复杂度:O(1)

具体实例:

<?php
$redis = new redis();
$redis -> connect('127.0.0.1',6379);
$redis -> flushAll(); $redis -> lPush('favorite_fruit','cherry');
$redis -> lPush('favorite_fruit','apple');
$redis -> lPush('favorite_fruit','peach');
$redis -> lPush('favorite_fruit','grape'); // The first case : 若 source 和 desitination 相同,则尾旋转操作
var_dump($redis -> brpoplpush('favorite_fruit','favorite_fruit',2)); // cherry ,并没有返回 time
var_dump($redis -> lRange('favorite_fruit',0,-1));
//array (size=4)
// 0 => string 'cherry' (length=6)
// 1 => string 'grape' (length=5)
// 2 => string 'peach' (length=5)
// 3 => string 'apple' (length=5) // The second case : 移动操作
var_dump($redis -> brpoplpush('favorite_fruit','other_list',2)); // apple ,并没有返回 time
var_dump($redis -> lRange('favorite_fruit',0,-1));
//array (size=3)
// 0 => string 'cherry' (length=6)
// 1 => string 'grape' (length=5)
// 2 => string 'peach' (length=5) var_dump($redis -> lRange('other_list',0,-1));
//array (size=1)
// 0 => string 'apple' (length=5) var_dump($redis -> brpoplpush('fake_key','desination_key',2)); // 等待 2s 后返回 false ,并没有返回 time

参照:https://www.cnblogs.com/chrdai/p/6841474.html

redis在php中实际应用-list的更多相关文章

  1. Redis设置认证密码 Redis使用认证密码登录 在Redis集群中使用认证密码

    Redis默认配置是不需要密码认证的,也就是说只要连接的Redis服务器的host和port正确,就可以连接使用.这在安全性上会有一定的问题,所以需要启用Redis的认证密码,增加Redis服务器的安 ...

  2. Redis 在新浪微博中的应用

    Redis 在新浪微博中的应用 Redis简介 1. 支持5种数据结构 支持strings, hashes, lists, sets, sorted setsstring是很好的存储方式,用来做计数存 ...

  3. Redis在PHP中的基本使用案例

    下载http://www.oschina.net/p/redis 解压后里面有:lib 源文件 .examples 例子.test测试 将lib目录拷贝到你的项目中,就可以开始你的predis操作了. ...

  4. redis 在 php 中的应用(List篇)

    本文为我阅读了 redis参考手册 之后编写,注意 php_redis 和 redis-cli 的区别(主要是返回值类型和参数用法) 目录: List(列表) LPUSH LPUSHX RPUSH R ...

  5. redis 在 php 中的应用(Sorted-set篇)

    本文为我阅读了 redis参考手册 之后编写,注意 php_redis 和 redis-cli 的区别(主要是返回值类型和参数用法) Redis 有序集合和集合一样也是string类型元素的集合,且不 ...

  6. redis 在 php 中的应用(Set篇)

    本文为我阅读了 redis参考手册 之后编写,注意 php_redis 和 redis-cli 的区别(主要是返回值类型和参数用法) Redis的 Set 是 string 类型的无序集合.集合成员是 ...

  7. Redis在python中的使用

    一 简介 redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset(sorted ...

  8. redis 在 php 中的应用

    一.redis 在 php 中的应用(Key篇) 二.redis 在 php 中的应用(String篇) 三.redis 在 php 中的应用(Hash篇) 四.redis 在 php 中的应用(Li ...

  9. 【*】Redis实战场景中相关问题

    一.Redis简介 redis主要解决的问题 分布式缓存是分布式系统中的重要组件,主要解决高并发.大数据场景下,热点数据访问的性能问题,提供高性能的数据快速访问. 使用缓存常见场景 项目中部分数据访问 ...

  10. redis 在 php 中的应用(Connection [ 连接] 篇)

    本文为我阅读了 redis参考手册 之后编写,注意 php_redis 和 redis-cli 的区别(主要是返回值类型和参数用法) 目录: Connection(连接) AUTH ECHO PING ...

随机推荐

  1. [科普] CPU, GPU, TPU的区别

    Google Cloud 原文链接:https://cloud.google.com/blog/products/ai-machine-learning/what-makes-tpus-fine-tu ...

  2. xcode6 如何编译64位iOS应用

    原文:http://mobile.51cto.com/hot-412500.htm 随着iPhone5S的推出,大家开始关心5S上所使用的64位CPU A7. 除了关心A7的性能以外,大家还会关心一个 ...

  3. JS中的原型链和原型的认识

    这篇文章主要是学习一下JavaScript中的难点------原型和原型链 自定义一个对象 我们学习一门编程语言,必然要使用它完成一些特定的功能,而面向对象的语言因为符合人类的认知规律,在这方面做得很 ...

  4. C++入门经典-例9.5-为具体类型的参数提供默认值

    1:默认模板参数是指类模板中由默认的数据类型作为参数的参数,在模板定义时,还可以为默认的数据类型声明,变量,并为变量赋值.代码如下: // 9.5.cpp : 定义控制台应用程序的入口点. #incl ...

  5. C++入门经典-例8.3-子类显示调用父类构造函数

    1:当父类含有带参数的构造函数时,创建子类的时候会调用它吗?答案是通过显示方式才可以调用. 无论创建子类对象时调用的是那种子类构造函数,都会自动调用父类默认构造函数.若想使用父类带参数的构造函数,则需 ...

  6. Windows 全绿色安装Mysql

    1.从Oracle官网上下载Mysql的Windows安装包,注意要下载Zip文件 2.将Mysql的Zip文件下载到本地电脑指定目录下 3.配置my.inia. 在<安装目录>下创建一个 ...

  7. 控制类名(className属性)

    className 属性设置或返回元素的class 属性. 语法: object.className = classname 作用: 1.获取元素的class 属性 2. 为网页内的某个元素指定一个c ...

  8. 时间总线框架之EvenBus

    概述 EventBus定义:是一个发布 / 订阅的事件总线. 这么说应该包含4个成分:发布者,订阅者,事件,总线. 那么这四者的关系是什么呢? 很明显:订阅者订阅事件到总线,发送者发布事件. 订阅者可 ...

  9. WPF 快速制作可拖拽的对象和窗体

    引用类库: 1.Microsoft.Expression.Interactions 2.System.Windows.Interactivity <Window x:Class="Wp ...

  10. 转: 动态加载、移除js、css文件

    function loadjscssfile(filename, filetype){ if (filetype=="js"){ var fileref=document.crea ...