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 相关文章推荐
不用数据库的多用户文件自由上传投票系统(1)
Oct 09 PHP
Gregarius中文日期格式问题解决办法
Apr 22 PHP
php 函数使用方法与函数定义方法
May 09 PHP
php+ajax做仿百度搜索下拉自动提示框(有实例)
Aug 21 PHP
PHP中设置时区,记录日志文件的实现代码
Jan 07 PHP
php 判断字符串中是否包含html标签
Feb 17 PHP
基于PHP实现假装商品限时抢购繁忙的效果
Oct 16 PHP
WordPress导航菜单的滚动和淡入淡出效果的实现要点
Dec 14 PHP
thinkphp框架实现删除和批量删除
Jun 29 PHP
PHP常用函数总结(180多个)
Dec 25 PHP
使用PHPStorm+XDebug搭建单步调试环境
Nov 19 PHP
yii2多图上传组件的使用教程
May 10 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
提问的智慧
2006/10/09 PHP
在线竞拍系统的PHP实现框架(一)
2006/10/09 PHP
ADODB结合SMARTY使用~超级强
2006/11/25 PHP
解析php下载远程图片函数 可伪造来路
2013/06/25 PHP
PHP isset empty函数相关面试题及解析
2020/12/11 PHP
PHP7修改的函数
2021/03/09 PHP
js style动态设置table高度
2014/10/21 Javascript
JavaScript多图片上传案例
2015/09/28 Javascript
巧用jQuery选择器提高写表单效率的方法
2016/08/19 Javascript
JavaScript 完成注册页面表单校验的实例
2017/08/19 Javascript
webpack3之loader全解析
2017/10/26 Javascript
[41:05]Serenity vs Pain 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
Python字符串中查找子串小技巧
2015/04/10 Python
Python网络爬虫项目:内容提取器的定义
2016/10/25 Python
python实现12306火车票查询器
2017/04/20 Python
python之PyMongo使用总结
2017/05/26 Python
Python处理Excel文件实例代码
2017/06/20 Python
Python中表达式x += y和x = x+y 的区别详解
2017/06/20 Python
Python文件操作基本流程代码实例
2017/12/11 Python
举例讲解Python常用模块
2019/03/08 Python
Python实现html转换为pdf报告(生成pdf报告)功能示例
2019/05/04 Python
Python循环结构的应用场景详解
2019/07/11 Python
python随机生成大小写字母数字混合密码(仅20行代码)
2020/02/01 Python
matlab灰度图像调整及imadjust函数的用法详解
2020/02/27 Python
python中导入 train_test_split提示错误的解决
2020/06/19 Python
护士长竞聘书
2014/03/31 职场文书
做一个有道德的人演讲稿
2014/05/14 职场文书
羽毛球社团活动总结
2014/06/27 职场文书
出国签证在职证明范本
2014/11/24 职场文书
2014年校务公开工作总结
2014/12/18 职场文书
2016反腐倡廉警示教育心得体会
2016/01/13 职场文书
导游词之南京莫愁湖公园
2019/11/13 职场文书
Python Django框架介绍之模板标签及模板的继承
2021/05/27 Python
mybatis 解决从列名到属性名的自动映射失败问题
2021/06/30 Java/Android
Python的property属性详细讲解
2022/04/11 Python
Python何绘制带有背景色块的折线图
2022/04/23 Python