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代码
Mar 03 PHP
Mysql中limit的用法方法详解与注意事项
Apr 19 PHP
PHP伪造referer实例代码
Sep 20 PHP
一个典型的PHP分页实例代码分享
Jul 28 PHP
给初学者的30条PHP最佳实践(荒野无灯)
Aug 02 PHP
微博短链接算法php版本实现代码
Sep 15 PHP
浅析HTTP消息头网页缓存控制以及header常用指令介绍
Jun 28 PHP
php使用文本统计访问量的方法
May 12 PHP
php 数组处理函数extract详解及实例代码
Nov 23 PHP
PHP实现的ID混淆算法类与用法示例
Aug 10 PHP
Linux基于php-fpm模式的lamp搭建phpmyadmin的方法
Oct 25 PHP
浅谈Laravel POST,PUT,PATCH 路由的区别
Oct 15 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/06/22 PHP
PHP中extract()函数的定义和用法
2012/08/17 PHP
php面向对象中static静态属性和静态方法的调用
2015/02/08 PHP
PHP加密解密函数详解
2015/10/28 PHP
PHP配合fiddler抓包抓取微信指数小程序数据的实现方法分析
2020/01/02 PHP
一个CSS+jQuery实现的放大缩小动画效果
2014/02/19 Javascript
javascript检查浏览器是否支持flash的实现代码
2014/08/14 Javascript
js获取当前日期前七天的方法
2015/02/28 Javascript
HTML5+setCutomValidity()函数验证表单实例分享
2015/04/24 Javascript
jQuery鼠标经过方形图片切换成圆边效果代码分享
2015/08/20 Javascript
vue.js指令v-model使用方法
2017/03/20 Javascript
JS简单获取当前日期时间的方法(如:2017-03-29 11:41:10 星期四)
2017/03/29 Javascript
基于Vue的文字跑马灯组件(npm 组件包)
2017/05/24 Javascript
聊聊Vue 中 title 的动态修改问题
2019/06/11 Javascript
JS实现简易留言板特效
2019/12/23 Javascript
js实现左右轮播图
2020/01/09 Javascript
vue中使用带隐藏文本信息的图片、图片水印的方法
2020/04/24 Javascript
react实现复选框全选和反选组件效果
2020/08/25 Javascript
Python单链表的简单实现方法
2014/09/23 Python
Python实现的数据结构与算法之队列详解
2015/04/22 Python
python实现mysql的单引号字符串过滤方法
2015/11/14 Python
一步步教你用Python实现2048小游戏
2017/01/19 Python
python 数字类型和字符串类型的相互转换实例
2018/07/17 Python
树莓派4B+opencv4+python 打开摄像头的实现方法
2019/10/18 Python
使用PyOpenGL绘制三维坐标系实例
2019/12/24 Python
pytorch学习教程之自定义数据集
2020/11/10 Python
介绍一下如何利用路径遍历进行攻击及如何防范
2014/01/19 面试题
如何用Java实现列出某个目录下的所有子目录
2015/07/20 面试题
大一学生的职业生涯规划书范文
2014/01/19 职场文书
综艺节目策划方案
2014/06/13 职场文书
2014年妇产科工作总结
2014/12/08 职场文书
小学生作文批改评语
2014/12/25 职场文书
换届选举主持词
2015/07/03 职场文书
2015七夕情人节宣传语
2015/07/14 职场文书
公司规章制度范本
2015/08/03 职场文书
Python下opencv库的安装过程及问题汇总
2021/06/11 Python