PHP学习网将不定时分享优质开源项目,优质技术文章,精选面试题和资源,大家可以把PHP学习网设为🌟星标,第一时间获取最新推送,以防错过优质内容。
项目中使用消息队列的地方很多,一般小型项目我们想用用队列,就不需要搭建专门的队列服务器了,我们直接使用redis即可,基本能实现我们的需求。
1、缓解服务器压力,将请求换成异步。
2、日志收集
3、文章列表(不同地方的文章,排序分页使用,这个就不需要消费了)
4、秒杀
等等,都可以使用消息队列
1)redis函数rpush,lpop
2)建议定时任务入队列
3)创建定时任务出队列
<?php
$redis = new Redis();
$redis->connect('127.0.0.1',6379);
$password = '123456';
$redis->auth($password);
$arr = array('h','e','l','l','o','w','o','r','l','d');
foreach($arr as $k=>$v){
$redis->rpush("mylist",$v);
}
<?php
$redis = new Redis();
$redis->connect('127.0.0.1',6379);
$password = '123456';
$redis->auth($password);
//list类型出队操作
$value = $redis->lpop('mylist');
if($value){
echo "出队的值".$value;
}else{
echo "出队完成";
}
?>
*/1 * * * * php /wwwroot/redis/index.php
*/3 * * * * php /wwwroot/redis/demo.php
tail -f /var/log/cron 查看定时任务执行情况
可以使用命令查看队列里数据的情况
lrange mylist 0 -1
通过这个命令我们可以做一个可视化的,展示前三百队列的情况,做到实时观察队列数据,如下图所示。