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支持页面回退的两种方法[转]
Feb 14 PHP
PHP5中的时间相差8小时的解决办法
Mar 28 PHP
PHP控制网页过期时间的代码
Sep 28 PHP
php date()日期时间函数详解
May 16 PHP
YII实现分页的方法
Jul 09 PHP
调试PHP程序的多种方法介绍
Nov 06 PHP
php实现将字符串按照指定距离进行分割的方法
Mar 14 PHP
ThinkPHP项目分组配置方法分析
Mar 23 PHP
php rsa 加密,解密,签名,验签详解
Dec 06 PHP
php实现购物车功能(以大苹果购物网为例)
Mar 09 PHP
详解php 使用Callable Closure强制指定回调类型
Oct 26 PHP
laravel validate 设置为中文的例子(验证提示为中文)
Sep 29 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
可快速识别放射性物质-国外大神教你diy一个开放式辐射探测器
2020/03/12 无线电
实现“上一页”和“下一页按钮
2006/10/09 PHP
PHP SQLite类
2009/05/07 PHP
php后台如何避免用户直接进入方法实例
2013/10/15 PHP
利用PHP函数计算中英文字符串长度的方法
2014/11/11 PHP
PHP批量查询WordPress留言者E-mail地址实现方法
2015/02/15 PHP
ThinkPHP路由机制简介
2016/03/23 PHP
不用写JS也能使用EXTJS视频演示
2008/12/29 Javascript
模拟多级复选框效果的jquery代码
2013/08/13 Javascript
Javascript中常见的校验如域名、手机、邮箱等等
2014/01/02 Javascript
JS对象转换为Jquery对象示例
2014/01/26 Javascript
js中this用法实例详解
2015/05/05 Javascript
JQuery中上下文选择器实现方法
2015/05/18 Javascript
bootstrap table分页模板和获取表中的ID方法
2017/01/10 Javascript
JS实现按钮添加背景音乐示例代码
2017/10/17 Javascript
Vue实现active点击切换方法
2018/03/16 Javascript
vue里input根据value改变背景色的实例
2018/09/29 Javascript
在vue中实现嵌套页面(iframe)
2020/07/30 Javascript
[01:19:46]EG vs Secret 2019国际邀请赛淘汰赛 胜者组 BO3 第二场 8.21.mp4
2020/07/19 DOTA
Python基于回溯法子集树模板解决找零问题示例
2017/09/11 Python
对Python中list的倒序索引和切片实例讲解
2018/11/15 Python
一文带你了解Python中的字符串是什么
2018/11/20 Python
python print输出延时,让其立刻输出的方法
2019/01/07 Python
python3去掉string中的标点符号方法
2019/01/22 Python
Python实现截取PDF文件中的几页代码实例
2019/03/11 Python
Python实现快速排序的方法详解
2019/10/25 Python
Python3 io文本及原始流I/O工具用法详解
2020/03/23 Python
Django vue前后端分离整合过程解析
2020/11/20 Python
一个不错的HTML5 Canvas多层点击事件监听实例
2014/04/29 HTML / CSS
冰淇淋店的创业计划书
2014/02/07 职场文书
《风筝》教学反思
2014/04/10 职场文书
《数星星的孩子》教学反思
2014/04/11 职场文书
物流管理专业自荐信
2014/06/23 职场文书
起诉书格式范文
2015/05/20 职场文书
十大最帅动漫男主 碓冰拓海上榜,第一是《灌篮高手》男主角
2022/03/18 日漫
Python使用Beautiful Soup(BS4)库解析HTML和XML
2022/06/05 Python