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 08 PHP
Dedecms V3.1 生成HTML速度的优化办法
Mar 18 PHP
php循环输出数据库内容的代码
May 24 PHP
php 删除数组元素
Jan 16 PHP
php 表单验证实现代码
Mar 10 PHP
PHP下打开phpMyAdmin出现403错误的问题解决方法
May 23 PHP
php ios推送(代码)
Jul 01 PHP
php轻松实现中英文混排字符串截取
May 28 PHP
php设置页面超时时间解决方法
Sep 22 PHP
WordPress中用于获取搜索表单的PHP函数使用解析
Jan 05 PHP
浅谈PHP封装CURL
Mar 06 PHP
PHP date_default_timezone_set()设置时区操作实例分析
May 16 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
PHP4 与 MySQL 交互使用
2006/10/09 PHP
php中session与cookie的比较
2015/01/27 PHP
php-msf源码详解
2017/12/25 PHP
jQuery入门第一课 jQuery选择符
2010/03/14 Javascript
Javascript 面向对象(二)封装代码
2012/05/23 Javascript
javascript中方便增删改cookie的一个类
2012/10/11 Javascript
extjs ColumnChart设置不同的颜色实现代码
2013/05/17 Javascript
基于jquery的文字向上跑动类似跑马灯的效果
2014/09/22 Javascript
JavaScript中使用指数方法Math.exp()的简介
2015/06/15 Javascript
三分钟带你玩转jQuery.noConflict()
2016/02/15 Javascript
Javascript必知必会(四)js类型转换
2016/06/08 Javascript
jQuery点击导航栏选中更换样式的实现代码
2017/01/23 Javascript
Vue.js路由vue-router使用方法详解
2017/03/20 Javascript
原生JS实现导航下拉菜单效果
2020/11/25 Javascript
解决vue中使用swiper插件问题及swiper在vue中的用法
2018/04/04 Javascript
vue配置多页面的实现方法
2018/05/22 Javascript
Vue 引入AMap高德地图的实现代码
2019/04/29 Javascript
vue实现图片上传到后台
2020/06/29 Javascript
vue实现验证用户名是否可用
2021/01/20 Vue.js
[02:20]DOTA2中文配音宣传片
2013/05/22 DOTA
python 采集中文乱码问题的完美解决方法
2016/09/27 Python
python+requests+unittest API接口测试实例(详解)
2017/06/10 Python
Python中使用支持向量机(SVM)算法
2017/12/26 Python
django foreignkey(外键)的实现
2019/07/29 Python
在python中利用try..except来代替if..else的用法
2019/12/19 Python
pytorch+lstm实现的pos示例
2020/01/14 Python
Opencv图像处理:如何判断图片里某个颜色值占的比例
2020/06/03 Python
CSS3 :not()选择器实现最后一行li去除某种css样式
2016/10/19 HTML / CSS
Under Armour西班牙官网:美国知名的高端功能性运动品牌
2018/12/12 全球购物
英国探险旅游专家:Explore
2018/12/20 全球购物
城市轨道专业个人求职信范文
2013/09/23 职场文书
英语自我评价范文
2014/01/24 职场文书
创建精神文明单位实施方案
2014/03/08 职场文书
欢度春节标语
2014/07/01 职场文书
2014年保育员工作总结
2014/12/02 职场文书
2014年青年志愿者工作总结
2014/12/09 职场文书