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下使用无限生命期Session的方法
Mar 16 PHP
自动生成文章摘要的代码[PHP 版本]
Mar 20 PHP
分享8个最佳的代码片段在线测试网站
Jun 29 PHP
PHP 利用Mail_MimeDecode类提取邮件信息示例
Jan 26 PHP
php利用单例模式实现日志处理类库
Feb 10 PHP
php截取中文字符串函数实例
Feb 23 PHP
php集成套件服务器xampp安装使用教程(适合第一次玩PHP的新手)
Jun 03 PHP
Yii扩展组件编写方法实例分析
Jun 29 PHP
详解php用static方法的原因
Sep 12 PHP
asp函数split()对应php函数explode()
Feb 27 PHP
一次因composer错误使用引发的问题与解决
Mar 06 PHP
PHP使用Redis队列执行定时任务实例讲解
Mar 24 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
Gregarius中文日期格式问题解决办法
2008/04/22 PHP
PHP中的命名空间详细介绍
2015/07/02 PHP
phpcms配置列表页以及获得文章发布时间
2017/07/04 PHP
PHP7扩展开发教程之Hello World实现方法示例
2017/08/03 PHP
JavaScript起点(严格模式深度了解)
2013/01/28 Javascript
无限树Jquery插件zTree的常用功能特性总结
2014/09/11 Javascript
JavaScript获取DOM元素的11种方法总结
2015/04/25 Javascript
JavaScript“尽快失败”的原则实例详解
2016/10/08 Javascript
angular2倒计时组件使用详解
2017/01/12 Javascript
jQuery实现form表单序列化转换为json对象功能示例
2018/05/23 jQuery
微信小程序网络封装(简单高效)
2018/08/06 Javascript
vue双向绑定及观察者模式详解
2019/03/19 Javascript
JQuery 实现文件下载的常用方法分析
2019/10/29 jQuery
JS localStorage存储对象,sessionStorage存储数组对象操作示例
2020/02/15 Javascript
[07:48]DOTA2上海特级锦标赛主赛事首日RECAP
2016/03/04 DOTA
[47:04]EG vs RNG 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/18 DOTA
Python抓取Discuz!用户名脚本代码
2013/12/30 Python
如何解决django配置settings时遇到Could not import settings 'conf.local'
2014/11/18 Python
初学Python函数的笔记整理
2015/04/07 Python
用Python的Django框架来制作一个RSS阅读器
2015/07/22 Python
实践Python的爬虫框架Scrapy来抓取豆瓣电影TOP250
2016/01/20 Python
Python使用PyCrypto实现AES加密功能示例
2017/05/22 Python
Python 实现数据库(SQL)更新脚本的生成方法
2017/07/09 Python
Python编程实现的简单神经网络算法示例
2018/01/26 Python
78行Python代码实现现微信撤回消息功能
2018/07/26 Python
Python写一个基于MD5的文件监听程序
2019/03/11 Python
python多线程+代理池爬取天天基金网、股票数据过程解析
2019/08/13 Python
python提取照片坐标信息的实例代码
2019/08/14 Python
Python 格式化打印json数据方法(展开状态)
2020/02/27 Python
Anaconda+vscode+pytorch环境搭建过程详解
2020/05/25 Python
canvas实现图片马赛克的示例代码
2018/03/26 HTML / CSS
淘宝客服自我总结鉴定
2014/01/25 职场文书
买房协议书范本
2014/10/23 职场文书
发布会邀请函
2015/01/31 职场文书
小学六一主持词开场白
2015/05/28 职场文书
详解TypeScript中的类型保护
2021/04/29 Javascript