php+redis实现消息队列功能示例


Posted in PHP onSeptember 19, 2019

本文实例讲述了php+redis实现消息队列功能。分享给大家供大家参考,具体如下:

个人理解在项目中使用消息队列一般是有如下几个原因:

把瞬间服务器的请求处理换成异步处理,缓解服务器的压力

实现数据顺序排列获取

redis实现消息队列步骤如下:

1).redis函数rpush,lpop

2).建议定时任务入队列

3)创建定时任务出队列

文件:demo.php插入数据到redis队列

<?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);
}

执行后结果如下

文件:index.php定时扫描出队列

<?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 * * * * root php /wwwroot/workplace/redis/index.php

 */3 * * * * root php /wwwroot/workplace/redis/demo.php

tail -f /var/log/cron  查看定时任务执行情况

Nov  7 00:30:01 dongzi CROND[6888]: (root) CMD (php /wwwroot/workplace/redis/demo.php)

Nov  7 00:30:01 dongzi CROND[6890]: (root) CMD (php /wwwroot/workplace/redis/index.php )

定时任务执行队列写入结果如下

127.0.0.1:6379> lrange mylist 0 -1

 1) "h"

 2) "e"

 3) "l"

 4) "l"

 5) "o"

 6) "w"

 7) "o"

 8) "r"

 9) "l"

10) "d"

定时任务执行出队列后:

127.0.0.1:6379> lrange mylist 0 -1

1) "e"

2) "l"

3) "l"

4) "o"

5) "w"

6) "o"

7) "r"

8) "l"

9) "d"

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
php cookie 登录验证示例代码
Mar 16 PHP
PHP开发不能违背的安全规则 过滤用户输入
May 01 PHP
php中防止恶意刷新页面的代码小结
Oct 31 PHP
PHP使用SOAP调用.net的WebService数据
Nov 12 PHP
php像数组一样存取和修改字符串字符
Mar 21 PHP
yii实现CheckBox复选框在同一行显示的方法
Dec 03 PHP
php实现在服务器端调整图片大小的方法
Jun 16 PHP
PHP中使用GD库绘制折线图 折线统计图的绘制方法
Nov 09 PHP
PHP下载文件的函数实例代码
May 18 PHP
微信红包随机生成算法php版
Jul 21 PHP
Yii 2.0中场景的使用教程
Jun 02 PHP
PHPExcel 修改已存在Excel的方法
May 03 PHP
php文件包含的几种方式总结
Sep 19 #PHP
smarty模板的使用方法实例分析
Sep 18 #PHP
PHP MVC框架中类的自动加载机制实例分析
Sep 18 #PHP
PHP切割整数工具类似微信红包金额分配的思路详解
Sep 18 #PHP
php实现多站点共用session实现单点登录的方法详解
Sep 18 #PHP
PHP实现批量修改文件名的方法示例
Sep 18 #PHP
php DES加密算法实例分析
Sep 18 #PHP
You might like
PHP 基于文件头的文件类型验证类函数
2012/05/01 PHP
ecshop后台编辑器替换成ueditor编辑器
2015/03/03 PHP
WordPress中限制非管理员用户在文章后只能评论一次
2015/12/31 PHP
PHP使用PDO调用mssql存储过程的方法示例
2017/10/07 PHP
script标签的 charset 属性使用说明
2010/12/04 Javascript
整理8个很棒的 jQuery 倒计时插件和教程
2011/12/12 Javascript
javascript实现简单的二级联动
2015/03/19 Javascript
jQuery AjaxUpload 上传图片代码
2016/02/02 Javascript
jQuery点击输入框显示验证码图片
2016/05/19 Javascript
深入理解jQuery layui分页控件的使用
2016/08/17 Javascript
AngularJS ng-template寄宿方式用法分析
2016/11/07 Javascript
详解微信开发中snsapi_base和snsapi_userinfo及静默授权的实现
2017/03/11 Javascript
深入理解jquery的$.extend()、$.fn和$.fn.extend()
2017/07/08 jQuery
vue中for循环更改数据的实例代码(数据变化但页面数据未变)
2017/09/15 Javascript
详解如何使用 vue-cli 开发多页应用
2017/12/16 Javascript
详解react关于事件绑定this的四种方式
2018/03/09 Javascript
200行代码实现blockchain 区块链实例详解
2018/03/14 Javascript
jquery.pager.js分页实现详解
2019/07/29 jQuery
JavaScript和TypeScript中的void的具体使用
2019/09/12 Javascript
JS如何实现动态添加的元素绑定事件
2019/11/12 Javascript
[46:55]LGD vs Liquid 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/19 DOTA
Python编程中的反模式实例分析
2014/12/08 Python
在Python程序中进行文件读取和写入操作的教程
2015/04/28 Python
结合Python的SimpleHTTPServer源码来解析socket通信
2016/06/27 Python
Python实现自动为照片添加日期并分类的方法
2017/09/30 Python
Python实现自动发送邮件功能
2021/03/02 Python
python 判断文件还是文件夹的简单实例
2019/06/10 Python
详解如何从TensorFlow的mnist数据集导出手写体数字图片
2019/08/05 Python
django rest framework 自定义返回方式
2020/07/12 Python
详解Scrapy Redis入门实战
2020/11/18 Python
现代绅士日常奢侈品:Todd Snyder
2019/12/13 全球购物
安全资料员岗位职责
2013/12/14 职场文书
幼儿园教师获奖感言
2014/03/11 职场文书
2015年派出所工作总结
2015/04/24 职场文书
行政诉讼答辩状
2015/05/21 职场文书
Vue实现跑马灯样式文字横向滚动
2021/11/23 Vue.js