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 相关文章推荐
图片存储与浏览一例(Linux+Apache+PHP+MySQL)
Oct 09 PHP
php win下Socket方式发邮件类
Aug 21 PHP
PHP 页面编码声明方法详解(header或meta)
Mar 12 PHP
php连接mssql数据库的几种方法
Feb 21 PHP
PHP 面向对象程序设计(oop)学习笔记(一) - 抽象类、对象接口、instanceof 和契约式编程
Jun 12 PHP
php通过文件流方式复制文件的方法
Mar 13 PHP
PHP微信开发之二维码生成类
Jun 26 PHP
php中删除、清空session的方式总结
Oct 09 PHP
基于PHP后台的Android新闻浏览客户端
May 23 PHP
Windows 下安装 swoole 图文教程(php)
Jun 05 PHP
PHP验证码无法显示的原因及解决办法
Aug 11 PHP
详解PHP变量传值赋值和引用赋值变量销毁
Mar 23 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
如何将一个表单同时提交到两个地方处理
2006/10/09 PHP
php5 apache 2.2 webservice 创建与配置(java)
2011/01/27 PHP
浅谈json_encode用法
2015/03/05 PHP
学习php设计模式 php实现享元模式(flyweight)
2015/12/07 PHP
CI配置多数据库访问的方法
2016/03/28 PHP
微信公众号开发客服接口实例代码
2016/10/21 PHP
ThinkPHP实现分页功能
2017/04/28 PHP
php将字符串转换为数组实例讲解
2020/05/05 PHP
jQuery 1.3 和 Validation 验证插件1.5.1
2009/07/09 Javascript
使用JavaScript脚本无法直接改变Asp.net中Checkbox控件的Enable属性的解决方法
2015/09/16 Javascript
window.onerror()的用法与实例分析
2016/01/27 Javascript
详解JavaScript正则表达式之分组匹配及反向引用
2016/03/09 Javascript
微信小程序 视图层(xx.xml)和逻辑层(xx.js)详细介绍
2016/10/13 Javascript
Bootstrap模态框禁用空白处点击关闭
2016/10/20 Javascript
Bootstrap禁用响应式布局的实现方法
2017/03/09 Javascript
JS控件bootstrap suggest plugin使用方法详解
2017/03/25 Javascript
Vue.js做select下拉列表的实例(ul-li标签仿select标签)
2018/03/02 Javascript
JS点击动态添加标签、删除指定标签的代码
2018/04/18 Javascript
vue自定义指令的创建和使用方法实例分析
2018/12/04 Javascript
总结4个方面优化Vue项目
2019/02/11 Javascript
操作按钮悬浮固定在微信小程序底部的实现代码
2019/08/02 Javascript
基于js实现复制内容到操作系统粘贴板过程解析
2019/10/11 Javascript
Python随机生成数模块random使用实例
2015/04/13 Python
python常见排序算法基础教程
2017/04/13 Python
一道python走迷宫算法题
2018/01/22 Python
Python3 replace()函数使用方法
2018/03/19 Python
python3实现随机数
2018/06/25 Python
numpy的文件存储.npy .npz 文件详解
2018/07/09 Python
浅谈python中拼接路径os.path.join斜杠的问题
2018/10/23 Python
使用python将excel数据导入数据库过程详解
2019/08/27 Python
个人简历中的自我评价范例
2013/10/29 职场文书
学习党的群众路线教育实践活动心得体会
2014/03/01 职场文书
《永远的白衣战士》教学反思
2014/04/25 职场文书
农村党员一句话承诺
2014/05/30 职场文书
幼儿园社区活动总结
2014/07/07 职场文书
2016年学校综治宣传月活动总结
2016/03/16 职场文书