资讯专栏INFORMATION COLUMN

redis+php+mysql处理高并发实例

archieyang / 1248人阅读

摘要:二实现步骤新建数据库及数据表,建表语句如下在中新建内容如下,并配置虚拟主机使其可访问到。

一、实验环境
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/36762.html

相关文章

  • redis+php+mysql处理并发实例

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

    songjz 评论0 收藏0
  • 并发简单解决方案】redis队列缓存 + mysql 批量入库 + php离线整合

    摘要:获取消息队列中的脚本,拼接,批量入库。批量入库脚本天级统计脚本总结相对于其他复杂的方式处理高并发,这个解决方案简单有效通过缓存抗压,批量入库解决数据库瓶颈,离线计算解决统计数据,通过定期清理保证库的大小。 需求背景:有个调用统计日志存储和统计需求,要求存储到mysql中;存储数据高峰能达到日均千万,瓶颈在于直接入库并发太高,可能会把mysql干垮。 问题分析 思考:应用网站架构的衍化过...

    myeveryheart 评论0 收藏0
  • 并发简单解决方案】redis队列缓存 + mysql 批量入库 + php离线整合

    摘要:获取消息队列中的脚本,拼接,批量入库。批量入库脚本天级统计脚本总结相对于其他复杂的方式处理高并发,这个解决方案简单有效通过缓存抗压,批量入库解决数据库瓶颈,离线计算解决统计数据,通过定期清理保证库的大小。 需求背景:有个调用统计日志存储和统计需求,要求存储到mysql中;存储数据高峰能达到日均千万,瓶颈在于直接入库并发太高,可能会把mysql干垮。 问题分析 思考:应用网站架构的衍化过...

    BigNerdCoding 评论0 收藏0
  • 并发简单解决方案】redis队列缓存 + mysql 批量入库 + php离线整合

    摘要:获取消息队列中的脚本,拼接,批量入库。批量入库脚本天级统计脚本总结相对于其他复杂的方式处理高并发,这个解决方案简单有效通过缓存抗压,批量入库解决数据库瓶颈,离线计算解决统计数据,通过定期清理保证库的大小。 需求背景:有个调用统计日志存储和统计需求,要求存储到mysql中;存储数据高峰能达到日均千万,瓶颈在于直接入库并发太高,可能会把mysql干垮。 问题分析 思考:应用网站架构的衍化过...

    刘福 评论0 收藏0
  • PHP面试题

    摘要:质量高在设计时,可重用现有的,在以前的项目的领域中已被测试过的类使系统满足业务需求并具有较高的质量。代码块捕获异常,并创建一个包含异常信息的对象。这样可以解决超卖的问题,但是会导致文件得开销很大。 6.你们公司是使用什么框架? 答:我们公司采用的是TP框架,运用的mysql+apache+php进行开发,因为TP框架是一个免费开源的,轻量级的php开发框架,而且是我们中国人自己开发的,...

    ls0609 评论0 收藏0

发表评论

0条评论

archieyang

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<