前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >php使用redis实现消息队列实例

php使用redis实现消息队列实例

作者头像
PHP学习网
发布2022-12-17 15:38:25
9020
发布2022-12-17 15:38:25
举报
文章被收录于专栏:PHP学习网

PHP学习网将不定时分享优质开源项目,优质技术文章,精选面试题和资源,大家可以把PHP学习网设为🌟星标,第一时间获取最新推送,以防错过优质内容。

项目中使用消息队列的地方很多,一般小型项目我们想用用队列,就不需要搭建专门的队列服务器了,我们直接使用redis即可,基本能实现我们的需求。

项目中使用消息队列的地方

1、缓解服务器压力,将请求换成异步。

2、日志收集

3、文章列表(不同地方的文章,排序分页使用,这个就不需要消费了)

4、秒杀

等等,都可以使用消息队列

消息队列实现的步骤

1)redis函数rpush,lpop

2)建议定时任务入队列

3)创建定时任务出队列

入队列 demo.php

代码语言:javascript
复制

<?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

代码语言:javascript
复制

<?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 "出队完成";

}

?>

建立定时任务

代码语言:javascript
复制
 */1 * * * * php /wwwroot/redis/index.php

 */3 * * * * php /wwwroot/redis/demo.php

tail -f /var/log/cron 查看定时任务执行情况

查看队列的结果

可以使用命令查看队列里数据的情况

代码语言:javascript
复制
lrange mylist 0 -1

通过这个命令我们可以做一个可视化的,展示前三百队列的情况,做到实时观察队列数据,如下图所示。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-11-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 PHP学习网 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 项目中使用消息队列的地方
  • 消息队列实现的步骤
  • 入队列 demo.php
  • 定时出队列 index.php
  • 建立定时任务
  • 查看队列的结果
相关产品与服务
云数据库 Redis®
腾讯云数据库 Redis®(TencentDB for Redis®)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档