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" }