欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 国际 > Redis List操作

Redis List操作

2024/12/22 15:48:37 来源:https://blog.csdn.net/nbplus_007/article/details/144560015  浏览:    关键词:Redis List操作

Redis List操作

1、lPush

在名称为key的list左边(头)添加一个值为value的 元素

$redis->lPush(key, value);

2、rPush

在名称为key的list右边(尾)添加一个值为value的 元素

$redis->rPush(key, value);

3、lPushx/rPushx

在名称为key的list左边(头)/右边(尾)添加一个值为value的元素,如果value已经存在,则不添加

$redis->lPushx(key, value);

4、lPop/rPop

输出名称为key的list左(头)起/右(尾)起的第一个元素,删除该元素

$redis->lPop('key');

5、blPop/brPop

lpop命令的block版本。即当timeout为0时,若遇到名称为key i的list不存在或该list为空,则命令结束。如果timeout>0,则遇到上述情况时,等待timeout秒,如果问题没有解决,则对keyi+1开始的list执行pop操作

$redis->blPop('key1', 'key2', 10);

6、lSize

返回名称为key的list有多少个元素

$redis->lSize('key');

7、lIndex, lGet

返回名称为key的list中index位置的元素

$redis->lGet('key', 0);

8、lSet

给名称为key的list中index位置的元素赋值为value

$redis->lSet('key', 0, 'X');

9、lRange, lGetRange

返回名称为key的list中start至end之间的元素(end为 -1 ,返回所有)

$redis->lRange('key1', 0, -1);

10、lTrim, listTrim

截取名称为key的list,保留start至end之间的元素

$redis->lTrim('key', start, end);

11、lRem, lRemove

删除count个名称为key的list中值为value的元素。count为0,删除所有值为value的元素,count>0从头至尾删除count个值为value的元素,count<0从尾到头删除|count|个值为value的元素

$redis->lRem('key', 'A', 2);

12、lInsert

在名称为为key的list中,找到值为pivot 的value,并根据参数Redis::BEFORE | Redis::AFTER,来确定,newvalue 是放在 pivot 的前面,或者后面。如果key不存在,不会插入,如果 pivot不存在,return -1

$redis->delete('key1'); 
$redis->lInsert('key1', Redis::AFTER, 'A', 'X'); 
$redis->lPush('key1', 'A'); $redis->lPush('key1', 'B'); 
$redis->lPush('key1', 'C'); 
$redis->lInsert('key1', Redis::BEFORE, 'C', 'X');
$redis->lRange('key1', 0, -1);
$redis->lInsert('key1', Redis::AFTER, 'C', 'Y');
$redis->lRange('key1', 0, -1);
$redis->lInsert('key1', Redis::AFTER, 'W', 'value');

13、rpoplpush

返回并删除名称为srckey的list的尾元素,并将该元素添加到名称为dstkey的list的头部

$redis->delete('x', 'y');
$redis->lPush('x', 'abc'); 
$redis->lPush('x', 'def'); 
$redis->lPush('y', '123'); 
$redis->lPush('y', '456'); // move the last of x to the front of y. var_dump($redis->rpoplpush('x', 'y'));
var_dump($redis->lRange('x', 0, -1));
var_dump($redis->lRange('y', 0, -1)); string(3) "abc" 
array(1) { [0]=> string(3) "def" } 
array(3) { [0]=> string(3) "abc" [1]=> string(3) "456" [2]=> string(3) "123" }

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com