Php+Redis队列原理

我们新建一个文件queue.php

<?php
while(true){
  echo 1;
  sleep(1);    
}

然后中 命令行里面 执行 php queue

 

你会发现每秒钟输出一个1;等了很久,咦,很神奇,为什么php没有超时呢?

对,就是不会超时,Why?

答:实际上PHP执行脚本是不会超时的,我们在网页中看到的诸如504等超时,是由Apache,Nginx,PHP配置文件设置的超时时间决定的,因为PHP命令行执行文件没有使用PHP配置文件,所以默认是不超时的

 

接下来我们演示redis+php实现队列

新建一个文件 artisan.php

复制代码
<?php
$redis = new Redis();
$redis->connect('127.0.0.1',6379);
$redis->auth('123456');//因为此处我设置了redis密码 while(1){ $res = $redis->lpop('listname'); if($res){echo $res."\r\n";} sleep(1); }
复制代码

然后php artisan.php 执行队列

 

 

我们来新建一个窗口,进入redis客户端输入以下命令【不会redis的可以在我的博客中找相关资料】

lpush listname a b c d e f g

会发现php artisan这个队列会不断的把redis里我刚刚push进去的值打出来

 

其实laravel的队列就是这个原理,只不过,它不仅支持redis作为载体,还可以使用其他更多的数据库


 

有人就要问了,我这php artisa.php启动了,如果我把窗口关了不就没用了吗,

不不不,Linux 还是可以在后台运行的

只要在命令后面加个 &

php artisan &

就可以啦

转载于:https://www.cnblogs.com/wujf-myblog/p/10522150.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值