Redis模拟秒杀抢购商品

前提需要安装下apache 的ab压力测试工具

因为我的服务器是linux 直接用yum进行安装
yum -y install httpd-tools
本项目通过TP5进行测试

use think\cache\driver\Redis;

        $redis = new Redis();
        //执行Redis其它高级方法
        $handler = $redis->handler();
        $handler->auth('连接redis的设置密码');
        //前提设置下count键的值 然后屏蔽代码
        //$handler->set('count',10);
        //监听count键
        $handler->watch('count');
        $count = $handler->get('count');
        $num = 0;

        if($count <= $num){
            exit('活动结束');
        }
        //开启事务之后才会将命令放入队列当中
        $handler->multi();
        $handler->set('count',$count-1);
        //按命令放入先后顺序执行,如果监视的数据被修改了,命令就会执行失败,返回空值
        $res = $handler->exec();

        if($res){
            Db::name('commodity')->where('id',15)->setDec('new_product',1);
            echo '下单成功';
        }

ab -c 2000 -n 3000 https://www.xxx.com/index.php 进行并发测试
-n 总的请求数
-c 并发数
-k 是否开启长连接
-p 包含了post数据的文件
-i 执行HEAD请求,只获取头信息

R XG

风影OvO, 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA 4.0协议进行授权 | 转载请注明原文链接

留下你的评论

*评论支持代码高亮<pre class="prettyprint linenums">代码</pre>

相关推荐

暂无内容!