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 相关文章推荐
一个可以找出源代码中所有中文的工具
Oct 25 PHP
安装APACHE
Jan 15 PHP
探讨Smarty中如何获取数组的长度以及smarty调用php函数的详解
Jun 20 PHP
使用php检测用户当前使用的浏览器是否为IE浏览器
Dec 03 PHP
PHP函数http_build_query使用详解
Aug 20 PHP
举例详解PHP脚本的测试方法
Aug 05 PHP
Laravel重写用户登录简单示例
Oct 08 PHP
php编程实现简单的网页版计算器功能示例
Apr 26 PHP
PHP实现二维数组中的查找算法小结
Jun 09 PHP
php使用curl模拟浏览器表单上传文件或者图片的方法
Nov 10 PHP
Yii框架常见缓存应用实例小结
Sep 09 PHP
关于Yii中模型场景的一些简单介绍
Sep 22 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
第一个无线电台是由谁发明的
2021/03/01 无线电
Php获取金书网的书名的实现代码
2010/06/11 PHP
php实现基于PDO的预处理示例
2017/03/28 PHP
JavaScript 编程引入命名空间的方法与代码
2007/08/13 Javascript
Jquery 基础学习笔记之文档处理
2009/05/29 Javascript
jQuery 数据缓存data(name, value)详解及实现
2010/01/04 Javascript
checkbox设置复选框的只读效果不让用户勾选
2013/08/12 Javascript
Jquery中使用show()与hide()方法动画显示和隐藏图片
2015/10/08 Javascript
JS实现密码框根据焦点的获取与失去控制文字的消失与显示效果
2015/11/26 Javascript
node+experss实现爬取电影天堂爬虫
2016/11/20 Javascript
jQuery EasyUI ProgressBar进度条组件
2017/02/28 Javascript
Redux 和 Mobx的选择问题:让你不再困惑!
2017/09/18 Javascript
vue之浏览器存储方法封装实例
2018/03/15 Javascript
angular 实时监听input框value值的变化触发函数方法
2018/08/31 Javascript
react 兄弟组件如何调用对方的方法示例
2018/10/23 Javascript
微信小程序实现多个按钮的颜色状态转换
2019/02/15 Javascript
微信小程序 授权登录详解(附完整源码)
2019/08/23 Javascript
Taro UI框架开发小程序实现左滑喜欢右滑不喜欢效果的示例代码
2020/05/18 Javascript
Python的迭代器和生成器使用实例
2015/01/14 Python
python制作花瓣网美女图片爬虫
2015/10/28 Python
Python字符串的一些操作方法总结
2019/06/10 Python
使用pandas 将DataFrame转化成dict
2019/12/10 Python
Python原始套接字编程实例解析
2020/01/29 Python
python空元组在all中返回结果详解
2020/12/15 Python
利用HTML5中的Canvas绘制一张笑脸的教程
2015/05/07 HTML / CSS
药品质量检测应届生求职信
2013/11/14 职场文书
应届电子商务毕业自荐书范文
2014/02/11 职场文书
2014年党支部学习材料
2014/05/19 职场文书
质量承诺书格式
2014/05/20 职场文书
计算机网络专业自荐书
2014/06/09 职场文书
大学生志愿者心得体会
2016/01/15 职场文书
高三化学教学反思
2016/02/22 职场文书
浅谈JavaScript作用域
2021/12/06 Javascript
Appium中scroll和drag_and_drop根据元素位置滑动
2022/02/15 Python
Pandas 数据编码的十种方法
2022/04/20 Python
Windows server 2012 R2 安装IIS服务器
2022/04/29 Servers