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分页显示制作详细讲解
Oct 09 PHP
PHP脚本数据库功能详解(下)
Oct 09 PHP
一步一步学习PHP(1) php开发环境配置
Feb 15 PHP
php抓取https的内容的代码
Apr 06 PHP
PHP的pcntl多进程用法实例
Mar 19 PHP
Linux下从零开始安装配置Nginx服务器+PHP开发环境
Dec 21 PHP
PHP二维数组排序简单实现方法
Feb 14 PHP
php简单实现sql防注入的方法
Apr 22 PHP
Yii2汉字转拼音类的实例代码
Apr 18 PHP
详解在YII2框架中使用UEditor编辑器发布文章
Nov 02 PHP
thinkPHP框架通过Redis实现增删改查操作的方法详解
May 13 PHP
laravel model模型定义实现开启自动管理时间created_at,updated_at
Oct 17 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简单的会话类代码
2011/08/08 PHP
PHP5下$_SERVER变量不再受magic_quotes_gpc保护的弥补方法
2012/10/31 PHP
php rsa加密解密使用详解
2015/01/14 PHP
PHP实现图片不变型裁剪及图片按比例裁剪的方法
2016/01/14 PHP
简单实现PHP留言板功能
2016/12/21 PHP
PHP面向对象程序设计类的定义与用法简单示例
2016/12/27 PHP
php数据库的增删改查 php与javascript之间的交互
2017/08/31 PHP
js获取视频时长代码
2014/04/10 Javascript
JavaScript中iframe实现局部刷新的几种方法汇总
2016/01/06 Javascript
JavaScript知识点总结(十六)之Javascript闭包(Closure)代码详解
2016/05/31 Javascript
js制作可以延时消失的菜单
2017/01/13 Javascript
vue element-ui table表格滚动加载方法
2018/03/02 Javascript
Angular4集成ng2-file-upload的上传组件
2018/03/14 Javascript
vue利用axios来完成数据的交互
2018/03/23 Javascript
layui 点击重置按钮, select 并没有被重置的解决方法
2019/09/03 Javascript
vue实现桌面向网页拖动文件的示例代码(可显示图片/音频/视频)
2021/03/01 Vue.js
[09:23]国际邀请赛采访专栏:iG战队VK,Tongfu战队Cu
2013/08/05 DOTA
python中print的不换行即时输出的快速解决方法
2016/07/20 Python
解决Python二维数组赋值问题
2019/11/28 Python
pytorch之添加BN的实现
2020/01/06 Python
python GUI库图形界面开发之PyQt5窗口控件QWidget详细使用方法
2020/02/26 Python
OpenCV 表盘指针自动读数的示例代码
2020/04/10 Python
Pandas实现一列数据分隔为两列
2020/05/18 Python
CSS改变网页中鼠标选中文字背景颜色例子
2014/04/23 HTML / CSS
使用HTML5做的导航条详细步骤
2020/10/19 HTML / CSS
牵手50香港:专为黄金岁月的单身人士而设的交友网站
2020/08/14 全球购物
linux面试题参考答案(3)
2012/09/13 面试题
Servlet方面面试题
2016/09/28 面试题
软件工程专业推荐信
2013/10/28 职场文书
英语商务邀请函范文
2014/01/16 职场文书
大学生会计职业生涯规划范文
2014/02/28 职场文书
个人安全生产承诺书
2014/05/22 职场文书
自强自立美德少年事迹材料
2014/08/16 职场文书
店面出租协议书范本
2014/11/28 职场文书
导游词之阳朔遇龙河
2019/12/16 职场文书
SQLServer2008提示评估期已过解决方案
2021/04/12 SQL Server