redis 学习笔记4 PHP redis 列表(list)

概念

Redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)

一个列表最多可以包含 232 - 1 个元素 (4294967295, 每个列表超过40亿个元素)。

1. redis list lpush(‘列表名’,‘值1’,‘值2’,‘值n’) 设置值 / lrange( '列表名',‘开始位置’,‘结束位置’ ) 从左边开始,取出列表里的值 / lindex ( 以索引的方式取出数据 ) / lpushx('列表名',‘值’ ) ( 插入的列表必须存在才行,不然返回false )

rpush(‘列表名’,‘值1’,‘值2’,‘值n’) ( 从右向左插入数据) / / rpushx('列表名',‘值’ ) ( 插入的列表必须存在才行,不然返回false )

   $redis->lpush('list1','value1'); // redis 列表设置值, list1 是列表名 (可以理解成数据库的表,但是没有字段属性,,只能插入 值 及对应生成的下标),lpush 从左侧插入值
   $redis->lpush('list1','value2'); // redis 列表设置值, list1 是列表名 (可以理解成数据库的表,但是没有字段属性,只能插入 值),lpush 从左侧插入值
   $redis->lpush('list1','value3'); // redis 列表设置值, list1 是列表名 (可以理解成数据库的表,但是没有字段属性,只能插入 值),lpush 从左侧插入值
   $a = $redis->lrange('list1',0,10); // 取出列表数据的值范围,lrange 从左侧 取出, 取出之后的值的顺序就是  value3   value2  value1,
   $a = $redis->lindex('list1',0); // 以索引的方式,获取列表的值,以左向右进行,得到值 value3
   $c = $redis->lpushx('list1','value1'); // 向存在的列表中插入数据,不存在就不能插入,返回false

2. redis list blpop ( 从列表左侧取出第一个数据 ) / brpop ( 从列表右侧取出第一个数据 ) , 如果列表 没有数据,则由 第二个参数 为 延时时间,到时间就返回空的数组

   $redis->lpush('list1','value1'); // redis 列表设置值, list1 是列表名 (可以理解成数据库的表,但是没有字段属性,,只能插入 值 及对应生成的下标),lpush 从左侧插入值
   $redis->lpush('list1','value2'); // redis 列表设置值, list1 是列表名 (可以理解成数据库的表,但是没有字段属性,只能插入 值),lpush 从左侧插入值
   $redis->lpush('list1','value3'); // redis 列表设置值, list1 是列表名 (可以理解成数据库的表,但是没有字段属性,只能插入 值),lpush 从左侧插入值
   $b = $redis->blpop('list1',5); //取出列表左侧第一个元素,如果存在就直接取出,如果不存在,则由第二个参数设置延时,到时间返回空数组
   $c = $redis->brpop('list1',5); //取出列表右侧第一个元素,如果存在就直接取出,如果不存在,则由第二个参数设置延时,到时间返回空数组

3. redis list brpoplpush('列表1',‘列表2’,'延时时间') / rpoplpush('列表1',‘列表2’) 移除列表的最后一个元素,并将该元素添加到另一个列表并返回。

   $redis->lpush('list1','value1'); // redis 列表设置值, list1 是列表名 (可以理解成数据库的表,但是没有字段属性,,只能插入 值 及对应生成的下标),lpush 从左侧插入值
   $a = $redis->brpoplpush('list1','list2','3'); // 从 list1 中取出第一个值 插入 到 list2 中的头部,如果list1 没有数据的话,则由第三个参数 设为延时时间,到时间返回 false, 列表 list2 不存在也会自动创建
   $redis->rpoplpush('list1','list2'); //从  列表1 中移除并取出第一个值 插入到 list2 中

4. redis list linsert(‘列表’,‘after/before’ , '某个旧值',‘新值’ ) (将一个 值 插入到另外一个值的前面(before) 或者 后面(after),旧值不存在 则不进行操作, 列表不存在,也不进行操作,如果列表名对应的不是列表类型则会报错)

   $redis->lpush('list1','value1'); // redis 列表设置值, list1 是列表名 (可以理解成数据库的表,但是没有字段属性,,只能插入 值 及对应生成的索引),lpush 从左侧插入值
   $redis->lpush('list1','value2'); // redis 列表设置值, list1 是列表名 (可以理解成数据库的表,但是没有字段属性,只能插入 值),lpush 从左侧插入值
   $redis->lpush('list1','value3'); // redis 列表设置值, list1 是列表名 (可以理解成数据库的表,但是没有字段属性,只能插入 值),lpush 从左侧插入值
   $redis->linsert('list1','after','value2','value4'); //将一个 值 插入到另外一个值的前面(before) 或者 后面(after)
   $a = $redis->lrange('list1',0,10);

5. redis liest llen('列表名') (计算列表的名称)

$a = $redis->llen('list1'); // 获取列表的长度

6. redis list lpop('列表名') (移除并返回列表的第一个元素) / rpop('列表名') (移除列表的最后一个元素,返回值为移除的元素。)

   $redis->lpush('list1','value1'); // redis 列表设置值, list1 是列表名 (可以理解成数据库的表,但是没有字段属性,,只能插入 值 及对应生成的索引),lpush 从左侧插入值
   $redis->lpush('list1','value2'); // redis 列表设置值, list1 是列表名 (可以理解成数据库的表,但是没有字段属性,只能插入 值),lpush 从左侧插入值
   $redis->lpush('list1','value3'); // redis 列表设置值, list1 是列表名 (可以理解成数据库的表,但是没有字段属性,只能插入 值),lpush 从左侧插入值
   $a = $redis->lpop('list1'); //移出并获取列表的第一个元素,得到是value3
   $a = $redis->rpop('list1'); //移出并获取列表的最后一个元素,得到是value1

7.redis list lrem('列表名',‘ count’ , value') (count > 0 : 从表头开始向表尾搜索,移除与 VALUE 相等的元素,数量为 COUNT 。count < 0 : 从表尾开始向表头搜索,移除与 VALUE 相等的元素,数量为 COUNT 的绝对值。count = 0 : 移除表中所有与 VALUE 相等的值。)

   $redis->lpush('list1','value1',); // redis 列表设置值, list1 是列表名 (可以理解成数据库的表,但是没有字段属性,,只能插入 值 及对应生成的索引),lpush 从左侧插入值
   $redis->lpush('list1','value2'); // redis 列表设置值, list1 是列表名 (可以理解成数据库的表,但是没有字段属性,只能插入 值),lpush 从左侧插入值
   $redis->lpush('list1','value3'); // redis 列表设置值, list1 是列表名 (可以理解成数据库的表,但是没有字段属性,只能插入 值),lpush 从左侧插入值
   $redis->lrem('list1',0,'value'); // 移除 列表里 和 value 相同的值,

8.redis list lset('列表名',‘索引值’,‘新的值’) (覆盖索引对应的value ,如果索引不存在 则覆盖失败)

   $redis->lpush('list1','value1',); // redis 列表设置值, list1 是列表名 (可以理解成数据库的表,但是没有字段属性,,只能插入 值 及对应生成的索引),lpush 从左侧插入值
   $redis->lpush('list1','value2'); // redis 列表设置值, list1 是列表名 (可以理解成数据库的表,但是没有字段属性,只能插入 值),lpush 从左侧插入值
   $redis->lpush('list1','value3'); // redis 列表设置值, list1 是列表名 (可以理解成数据库的表,但是没有字段属性,只能插入 值),lpush 从左侧插入值
   $a = $redis->lset('list1',2,'valuset'); // 覆盖索引对应的value ,如果索引不存在 则覆盖失败

9.redis list ltrim(‘列表名’,‘索引开始位置’,‘索引结束位置’) ( 移除掉不在索引范围内的值)

   $redis->lpush('list1','value1',); // redis 列表设置值, list1 是列表名 (可以理解成数据库的表,但是没有字段属性,,只能插入 值 及对应生成的索引),lpush 从左侧插入值
   $redis->lpush('list1','value2'); // redis 列表设置值, list1 是列表名 (可以理解成数据库的表,但是没有字段属性,只能插入 值),lpush 从左侧插入值
   $redis->lpush('list1','value3'); // redis 列表设置值, list1 是列表名 (可以理解成数据库的表,但是没有字段属性,只能插入 值),lpush 从左侧插入值
   $a = $redis->ltrim('list1',0,1); // 不在索引范围内的值都被移除

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值