php+redis实现消息队列

云游道人 2025-10-19 9 阅读 0评论

php+redis消息队列是php+mysql性能不足时的一个中间处理方案.


通过这个中间的处理,保证的数据的可用性和准确性。用于服务器瞬间请求大,数据库压力大的情况。如并发量大导致的超卖、并发量大导致的数据重复情况。


流程:php接受请求和数据 -> php把数据写入redis队列中(入队) -> shell定时调用php读取队列数据写入mysql(出队)


实现代码:


入队:inqueue.php

<?php

$redis = new redis();

$redis->connect('127.0.0.1',6379);

$redis -> select('1');

$redis->auth('');

  

$data = [a,b,c,d,e,f,g,h]; //这里可以是get或post请求过来的数据

$data = json_encode($data);

$in = $redis->rpush('queue',$data);

if($in){

    echo "入队成功";

}


出队:outqueue.php

#!/usr/bin/php

<?php

$redis = new redis();

$redis->connect('127.0.0.1',6379);

$redis -> select('1');

$redis->auth('');

  

$value = $redis->lpop('queue');

$value = json_decode($value,true);


shell process.sh:定时调用outqueue.php脚本


#进行每分钟调用一次

* * * * * /usr/local/nginx/html/process.sh

#!/bin/bash

#file_name : process.sh

#author : zuoping

php /usr/local/nginx/html/outqueue.php


*如果每分钟调用一次频率不够,可以执行多次调用脚本,如:

#!/bin/bash

#file_name : process.sh

#author : zuoping

php /usr/local/nginx/html/outqueue.php

php /usr/local/nginx/html/outqueue.php

php /usr/local/nginx/html/outqueue.php

php /usr/local/nginx/html/outqueue.php

php /usr/local/nginx/html/outqueue.php

php /usr/local/nginx/html/outqueue.php

php /usr/local/nginx/html/outqueue.php

php /usr/local/nginx/html/outqueue.php

php /usr/local/nginx/html/outqueue.php

php /usr/local/nginx/html/outqueue.php

php /usr/local/nginx/html/outqueue.php

#这样就一分钟调用了多次了。

查看队列中的当前数据:

<?php

$redis = new redis();

$redis->connect('127.0.0.1',6379);

$redis -> select('1');

$redis->auth('');

  

$list = $redis->lrange('queue',0,-1);

var_dump($list);


原文地址:https://juejin.cn/post/6844904194088894471

喜欢就支持以下吧
点赞 0

发表评论

快捷回复: 表情:
aoman baiyan bishi bizui cahan ciya dabing daku deyi doge fadai fanu fendou ganga guzhang haixiu hanxiao zuohengheng zhuakuang zhouma zhemo zhayanjian zaijian yun youhengheng yiwen yinxian xu xieyanxiao xiaoku xiaojiujie xia wunai wozuimei weixiao weiqu tuosai tu touxiao tiaopi shui se saorao qiudale qinqin qiaoda piezui penxue nanguo liulei liuhan lenghan leiben kun kuaikule ku koubi kelian keai jingya jingxi jingkong jie huaixiao haqian aini OK qiang quantou shengli woshou gouyin baoquan aixin bangbangtang xiaoyanger xigua hexie pijiu lanqiu juhua hecai haobang caidao baojin chi dan kulou shuai shouqiang yangtuo youling
提交
评论列表 (有 0 条评论, 9人围观)

最近发表

热门文章

最新留言

热门推荐

标签列表