php+redis+mysq如何l处理高并发(实例代码)
内容导读
收集整理的这篇技术教程文章主要介绍了php+redis+mysq如何l处理高并发(实例代码),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1700字,纯文字阅读大概需要3分钟。
内容图文
本篇文章给大家带来的内容是关于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,内容如下,并配置虚拟主机使其可访问到。
<?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处理高并发(实例代码)的详细内容,更多请关注Gxl网其它相关文章!
内容总结
以上是为您收集整理的php+redis+mysq如何l处理高并发(实例代码)全部内容,希望文章能够帮你解决php+redis+mysq如何l处理高并发(实例代码)所遇到的程序开发问题。 如果觉得技术教程内容还不错,欢迎将网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。