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 相关文章推荐
优化NFR之一 --MSSQL Hello Buffer Overflow
Oct 09 PHP
个人站长制做网页常用的php代码
Mar 03 PHP
PHP 数组实例说明
Aug 18 PHP
php google或baidu分页代码
Nov 26 PHP
Linux编译升级php的详细方法
Nov 04 PHP
javascript some()函数用法详解
Nov 13 PHP
php简单复制文件的方法
May 09 PHP
简单理解PHP的面向对象编程方式
May 17 PHP
php实现微信公众号创建自定义菜单功能的实例代码
Jun 11 PHP
php时间戳转换代码详解
Aug 04 PHP
PHP常见的序列化与反序列化操作实例分析
Oct 28 PHP
PHP7 整型处理机制修改
Mar 09 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学习之 认清变量的作用范围
2010/01/26 PHP
mac下使用brew配置环境的步骤分享
2011/05/23 PHP
使用gd库实现php服务端图片裁剪和生成缩略图功能分享
2013/12/25 PHP
php中file_get_contents与curl性能比较分析
2014/11/08 PHP
PHP获取文本框、密码域、按钮的值实例代码
2017/04/19 PHP
laravel框架使用阿里云短信发送消息操作示例
2020/02/15 PHP
input+select(multiple) 实现下拉框输入值
2009/05/21 Javascript
更换select下拉菜单背景样式的实现代码
2011/12/20 Javascript
jQuery写的日历(包括日历的样式及功能)
2013/04/23 Javascript
jquery dialog open后,服务器端控件失效的快速解决方法
2013/12/19 Javascript
Javascript 中创建自定义对象的方法汇总
2014/12/04 Javascript
JavaScript生成的动态下雨背景效果实现方法
2015/02/25 Javascript
CSS javascript 结合实现悬浮固定菜单效果
2015/08/23 Javascript
jQuery页面刷新(局部、全部)问题分析
2016/01/09 Javascript
小程序自定义组件实现城市选择功能
2018/07/18 Javascript
深入剖析JavaScript instanceof 运算符
2019/06/14 Javascript
[38:40]2018DOTA2亚洲邀请赛 4.6淘汰赛 mineski vs LGD 第一场
2018/04/10 DOTA
python妹子图简单爬虫实例
2015/07/07 Python
Python中import机制详解
2017/11/14 Python
python实现聊天小程序
2018/03/13 Python
TensorFlow 合并/连接数组的方法
2018/07/27 Python
Python3.4学习笔记之列表、数组操作示例
2019/03/01 Python
python时间序列按频率生成日期的方法
2019/05/14 Python
python numpy 常用随机数的产生方法的实现
2019/08/21 Python
python 有效的括号的实现代码示例
2019/11/11 Python
Pytorch 计算误判率,计算准确率,计算召回率的例子
2020/01/18 Python
keras 自定义loss损失函数,sample在loss上的加权和metric详解
2020/05/23 Python
python实现登录与注册系统
2020/11/30 Python
网络维护管理员的自我评价分享
2013/11/11 职场文书
计算机专业毕业生自荐信
2013/12/31 职场文书
售后服务承诺书怎么写
2014/05/21 职场文书
万里长城导游词
2015/01/30 职场文书
开幕式邀请函
2015/01/31 职场文书
python自动化调用百度api解决验证码
2021/04/13 Python
Python编程编写完善的命令行工具
2021/09/15 Python
Python+SeaTable实现计算两个日期间的工作日天数
2022/07/07 Python