首页 > 编程 > PHP > 正文

php+redis+mysq如何l处理高并发(实例代码)

2020-03-22 19:47:16
字体:
来源:转载
供稿:网友
本篇文章给大家带来的内容是关于php+redis+mysq如何l处理高并发(实例代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

一、实验环境
ubuntu、php、apache或nginx、mysql
二、需求
现在有一个接口可能会出现并发量比较大的情况,这个接口使用php写的,做的功能是接收 用户的GET请求中的name字段,然后将这个字段存到mysql中,现在先将数据放到redis的队列中,然后让redis定时将这些数据转移到mysql中。
二、实现步骤
1.新建数据库test及 数据表test,建表语句如下

CREATE TABLE `test` ( `name` varchar(255) DEFAULT NULL) ENGINE=InnoDB DEFAULT CHARSET=utf-8

1.在/var/www/test中新建index.php,内容如下,并配置html' target='_blank'>虚拟主机使其可访问到。

 ?php$redis = new Redis();$redis- connect( 127.0.0.1 , 6379);try { $res = $redis- LPUSH( name , $_REQUEST[ name ]);} catch (Exception $e) { echo $e- getMessage();}

2.在相同的目录下新建redis.php文件,注意修改其中的数据库密码等配置,内容如下

 ?php$redis = new Redis();$redis- pconnect( 127.0.0.1 ,6379);$mysql=mysqli_connect( localhost , root , bnm mysqli_select_db($mysql, test ) or die( 不能选择数据库 if(!$mysql){ die( 连接失败 while (true){ try{ $value = $redis- LPOP( name  if(!$value){ echo 等待  }else{ $sql= insert into test(name) values ( .$value. )  $result=mysqli_query($mysql,$sql); if($result mysqli_affected_rows($mysql) 0){ echo 插入成功  }else{ echo 插入失败: .mysqli_error($mysql); }catch(Exception $e){ echo $e- getMessage(); sleep(1);}

3.运行redis.php脚本文件

nohup php redis.php 

4.访问index.php脚本文件,如:http://192.168.116.128/?name=33,然后查看数据是否已经到mysql中。

相关文章推荐:

php数组函数有哪些操作?php数组函数的应用(附代码)

thinkphp5框架与Android实现二维码的生成代码

以上就是php+redis+mysq如何l处理高并发(实例代码)的详细内容,PHP教程

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表