list适用场景
- 消息队列
list类型的lpop和rpush(或者反过来,lpush和rpop)能实现队列的功能,故而可以用Redis的list类型实现简单的点对点的消息队列。 - 最新列表
list类型的lpush命令和lrange命令能实现最新列表的功能,每次通过lpush命令往列表里插入新的元素,然后通过lrange命令读取最新的元素列表,如朋友圈的点赞列表、评论列表。
$redis = new redis();
$redis->connect('127.0.0.1', 6379);
$redis->auth('123456');
$redis->flushAll();
$key = 'product1';
for ($i = 0; $i < 100; $i++) {
$uid = rand(1000, 9999);
$number = 10;
if ($number > $redis->lLen($key)) {
$redis->rpush($key, $uid);
} else {
continue;
}
}
while (true){
$flag = $redis->exists($key);
if($flag){
$uid = $redis->rpop($key);
echo $uid ."抢购成功!,进行订单处理操作<br/>";
} else {
echo "出列完毕!";
exit;
}
}
对list数据的操作
$redis->lpush('list','值1','value2','value3');
$redis->lpushx('list','值2');
$redis->rpush('list','值1');
$redis->rpushx('list','值2');
$redis->lrange('list',0,-1);
$redis->lgetrange('list',0,-1)
$redis->lindex('list',0);
$redis->lget('list',0);
$redis->lset('list',0,'新值');
$redis->lpop('list');
$redis->rpop('list');
$redis->lremove('list','value',2);
$redis->rpoplpush('list','list1');
$redis->ltrim('list',1,2);
$redis->llen('list');