美文网首页
php 秒杀 高并发 教程笔记

php 秒杀 高并发 教程笔记

作者: 任我笑笑 | 来源:发表于2018-04-20 17:13 被阅读0次

    url

    https://coding.imooc.com/class/148.html

    简单介绍

    前五章一直在用原生的php来实现一个简单的秒杀系统
    第六七章又强调了下各个不同量级的秒杀对于系统的不同要求

    第八章开始讲正题 单机性能提升 1,2,3都是常规方法
    4开始从提高接口速度出发
    主要是利用redis

    第九章 分布式 基本就是在念ppt

    主要应对手段

    探针类

    找到某些function或者sql的耗时

    web服务器

    • lvs 随时扩展 集群
    • cdn
    • 动态变静态

    db

    • redis

    其他

    网络之间的消耗

    第八章 优化单机性能

    启用gzip压缩

    image.png

    减少资源请求数量,合并压缩css js

    minify 去掉回车,空格 ,多文件整合
    php项目 url
    code.google.com/p/minify

    image.png

    nginx配置文件缓存

    配置expires
    expires起到控制页面缓存的作用,合理的配置expires可以减少很多服务器的请求
    要配置expires,可以在http段中或者server段中或者location段中加入

           location ~ \.(gif|jpg|jpeg|png|bmp|ico)$ {
               root /var/www/img/;
               expires 30d;
           }
    

    控制图片等过期时间为30天,当然这个时间可以设置的更长。具体视情况而定
    比如

           location ~ \.(wma|wmv|asf|mp3|mmf|zip|rar|swf|flv)$ {
                   root /var/www/upload/;
                   expires max;
           }
    

    expires 指令可以控制 HTTP 应答中的“ Expires ”和“ Cache-Control ”的头标(起到控制页面缓存的作用)
    语法:expires [time|epoch|max|pff]
    默认值:off
    expires指令控制HTTP应答中的“Expires”和“Cache-Control”Header头部信息,启动控制页面缓存的作用
    time:可以使用正数或负数。“Expires”头标的值将通过当前系统时间加上设定time值来设定。
    time值还控制"Cache-Control"的值:
    负数表示no-cache
    正数或零表示max-age=time


    image.png

    提高接口速度

    • 将接口静态化
    • 快速终止的逻辑放在前面
    利用nginx的rwrite功能,在秒杀时正常进逻辑,在秒杀结束后,没有库存等,直接显示秒杀结束的静态页面,让他们减少请求
    
    • 数据库索引,一定不能少,更不能乱
    • 减少数据规模 每次秒杀新建一张专用表
    • 将数据放到redis缓存中

    我的理解,其实就是简单的为每个秒杀开个专用redis缓存,存储订单信息,商品信息等,等到秒杀结束后,再用个batch把redis里面的信息写到mysql中么?

    从代码中可以看出,以上猜想不成立

    实际上是每次都去读写redis,如果redis判断没有问题再去读写mysql

    image.png image.png image.png

    第九章 分布式

    image.png image.png image.png

    相关文章

      网友评论

          本文标题:php 秒杀 高并发 教程笔记

          本文链接:https://www.haomeiwen.com/subject/eprzkftx.html