Redis 列表-list

2020-07-26  本文已影响0人  不留余白

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

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

//向列表中压入数据
$redis->lPush('list','1','2','3');
//获取列表长度
$result=$redis->lLen('list');
//弹出列表中第一个元素(先入后出)
$result=$redis->lpop('list');//3
//弹出列表中最后一个元素(先入先出)
$result=$redis->rpop('list');//1
//阻塞式弹出列表中第一个元素,如果没有元素则等待1秒
while($result = $redis->blPop('list',1)){
    var_export($result);//'3''2''1'
}
//阻塞式弹出列表中最后一个元素,如果没有元素则等待1秒
while($result = $redis->brPop('list',1)){
    var_export($result);
}
//通过索引获取列表中的元素(先入后出)
$redis->lPush('list','1','2','3');
$r1=$redis->lIndex('list',0);
$r2=$redis->lIndex('list',1);
$r3=$redis->lIndex('list',2);
var_export($r1);//3
var_export($r2);//2
var_export($r3);//1
//将一个元素插入到表头
$redis->lPushx('list','999');

while ($r=$redis->lPop('list')){
    var_export($r);//999''3''2''1'
}
//获取指定下标范围内的元素
$r=$redis->lRange('list',0,100);
var_export($r);
//array (
//  0 => '3',
//  1 => '2',
//  2 => '1',
//)
//移除列表元素
$r=$redis->lRem('list',3,1);//1
$redis->lPush('list','1','2','3');

//通过下标设置元素的值,如果下标不存在则返回false
$r=$redis->lset('list',10,100);//false
$r=$redis->lset('list',2,100);//true
//修剪队列,只保留开始下标起指定长度的元素
$r=$redis->lTrim('list',1,3);
while($r=$redis->lPop('list')){
    var_export($r);//'5''4''3'
}
$redis->lPush('list','1','2','3','4','5','6');
//移除列表的最后一个元素,并将该元素添加到另一个列表并返回
$r=$redis->rpoplpush('list','list2');
while($r=$redis->lPop('list2')){
    var_export($r);//1
}

//移除列表的最后一个元素,并将该元素添加到另一个列表并返回,并阻塞等待1秒
$r=$redis->brpoplpush('list','list2',1);
while($r=$redis->lPop('list2')){
    var_export($r);//2
}
上一篇 下一篇

猜你喜欢

热点阅读