php 秒杀 高并发 教程笔记

2018-04-20  本文已影响0人  任我笑笑

url

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

简单介绍

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

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

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

主要应对手段

探针类

找到某些function或者sql的耗时

web服务器

db

其他

网络之间的消耗

第八章 优化单机性能

启用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缓存,存储订单信息,商品信息等,等到秒杀结束后,再用个batch把redis里面的信息写到mysql中么?

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

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

image.png image.png image.png

第九章 分布式

image.png image.png image.png
上一篇下一篇

猜你喜欢

热点阅读