脚本宝典收集整理的这篇文章主要介绍了redis+php+mysql处理高并发实例,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
一、实验环境
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,内容如下,并配置虚拟主机使其可访问到。
<?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中。
以上是脚本宝典为你收集整理的redis+php+mysql处理高并发实例全部内容,希望文章能够帮你解决redis+php+mysql处理高并发实例所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。