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 相关文章推荐
php5 and xml示例
Nov 22 PHP
php获得当前的脚本网址
Dec 10 PHP
无JS,完全php面向过程数据分页实现代码
Aug 27 PHP
PHP中函数rand和mt_rand的区别比较
Dec 26 PHP
获取PHP警告错误信息的解决方法
Jun 03 PHP
解析php mysql 事务处理回滚操作(附实例)
Aug 05 PHP
PHP生成树的方法
Jul 28 PHP
CodeIgniter连贯操作的底层原理分析
May 17 PHP
php实现HTML实体编号与非ASCII字符串相互转换类实例
Nov 02 PHP
PHP进程通信基础之信号
Feb 19 PHP
php实现的中秋博饼游戏之绘制骰子图案功能示例
Nov 06 PHP
Laravel框架实现调用百度翻译API功能示例
May 30 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读取IMAP邮件
2006/10/09 PHP
php ignore_user_abort与register_shutdown_function 使用方法
2009/06/14 PHP
PHP数组交集的优化代码分析
2011/03/06 PHP
PHP写的获取各搜索蜘蛛爬行记录代码
2012/08/21 PHP
Discuz论坛密码与密保加密规则
2016/12/19 PHP
Laravel6.0.4中将添加计划任务事件的方法步骤
2019/10/15 PHP
重定向实现代码
2006/11/20 Javascript
jquery实现html页面 div 假分页有原理有代码
2014/09/06 Javascript
使用typeof方法判断undefined类型
2014/09/09 Javascript
基于javascript实现单选及多选的向右和向左移动实例
2015/07/25 Javascript
javascript巧用eval函数组装表单输入项为json对象的方法
2015/11/25 Javascript
Node.js的Express框架使用上手指南
2016/03/12 Javascript
用jquery获取自定义的标签属性的值简单实例
2016/09/17 Javascript
vue从使用到源码实现教程详解
2016/09/19 Javascript
JavaScript正则获取地址栏中参数的方法
2017/03/02 Javascript
JavaScript中Hoisting详解 (变量提升与函数声明提升)
2017/08/18 Javascript
浅析node应用的timing-attack安全漏洞
2018/02/28 Javascript
jquery引入外部CDN 加载失败则引入本地jq库
2018/05/23 jQuery
微信小程序实现默认第一个选中变色效果
2018/07/17 Javascript
JS实现计算小于非负数n的素数的数量算法示例
2019/02/26 Javascript
vue配置接口域名方法总结
2019/05/12 Javascript
深入浅析nuxt.js基于ssh的vue通用框架
2019/05/21 Javascript
浅谈JavaScript中this的指向问题
2020/07/28 Javascript
[02:43]DOTA2英雄基础教程 德鲁伊
2014/01/13 DOTA
Python 拷贝对象(深拷贝deepcopy与浅拷贝copy)
2008/09/06 Python
Python3实现zip分卷压缩过程解析
2019/10/09 Python
Python3 解决读取中文文件txt编码的问题
2019/12/20 Python
PHP基于phpqrcode类库生成二维码过程解析
2020/05/28 Python
Python接口自动化系列之unittest结合ddt的使用教程详解
2021/02/23 Python
英国体育器材进口商店:UK Sport Imports
2017/03/14 全球购物
孤独星球出版物:Lonely Planet Publications
2018/03/17 全球购物
端午节演讲稿
2014/05/23 职场文书
我的中国梦演讲稿400字
2014/08/19 职场文书
警察群众路线整改措施
2014/09/26 职场文书
世界气象日活动总结
2015/02/27 职场文书
求职简历自我评价范文
2015/03/10 职场文书