摘要:二实现步骤新建数据库及数据表,建表语句如下在中新建内容如下,并配置虚拟主机使其可访问到。
一、实验环境
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,内容如下,并配置虚拟主机使其可访问到。
connect("127.0.0.1", 6379); try { $res = $redis->LPUSH("name", $_REQUEST["name"]); } catch (Exception $e) { echo $e->getMessage(); }
2.在相同的目录下新建redis.php文件,注意修改其中的数据库密码等配置,内容如下
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中。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/29172.html
摘要:获取消息队列中的脚本,拼接,批量入库。批量入库脚本天级统计脚本总结相对于其他复杂的方式处理高并发,这个解决方案简单有效通过缓存抗压,批量入库解决数据库瓶颈,离线计算解决统计数据,通过定期清理保证库的大小。 需求背景:有个调用统计日志存储和统计需求,要求存储到mysql中;存储数据高峰能达到日均千万,瓶颈在于直接入库并发太高,可能会把mysql干垮。 问题分析 思考:应用网站架构的衍化过...
阅读 3077·2021-02-22 17:12
阅读 679·2019-08-30 15:55
阅读 3014·2019-08-30 15:54
阅读 1359·2019-08-29 16:56
阅读 1845·2019-08-29 15:13
阅读 1683·2019-08-29 13:19
阅读 578·2019-08-26 13:40
阅读 2797·2019-08-26 10:26