1、页面缓存
第一次加载就把html存在redis中,下次先从缓存中取页面。
2、URL缓存
和页面缓存类似,是拿到url,然后把获取的页面存到缓存中。
3、对象缓存
把对象存在缓存中,注意的是在修改了对象后同时要修改缓存。
4、页面静态化
就是把页面缓存在浏览器中,直接从本地取页面,节省了流量(vue.js等)。
5、接口优化
- redis预减库存减少数据库访问
- 系统初始化就把商品数量加载到redis
- redis预减库存,如果库存不足就直接返回秒杀失败。
- 如果预存有,就请求入队,返回排队中。
- 请求失败,生成订单,减少库存。
- 客户端轮询,是否秒杀成功。
- 内存标记减少Redis访问
- 请求先入队缓冲,异步下单,增强用户体验
- 分库分表(mycat)
6、安全优化
-
接口地址隐藏
思路:秒杀开始之前,先去请求接口获取秒杀地址
- 接口改造,带上PathVariable参数
- 添加生成地址的接口
- 秒杀收到请求,先验证PathVariable
-
数学公式验证码
- 防止机器人恶意访问
- 缓冲并发压力
接口限流防刷(限制每个ip在某个时间只能访问n次)