2021-04-19

4.19 php常见面试题小结

秒杀
秒杀商品入库审核(后台),把秒杀商品保存到mysql中
秒杀服务定时将秒杀商品载入redis
用户经过openresty(nginx)访问redis获取秒杀商品,获取秒杀列表页(展示秒杀商品)
点击秒杀商品图片进入秒杀详情页,也是通过openResty(nginx),这是个插件可以抗上万并发
通过openResty查询redis判断是否有秒杀商品,如果有秒杀商品,检查用户是否登录
用户登录,秒杀服务,排队抢单,记录用户的id和商品id,把排队信息存储到redis中,提示用户正在排队
多线程抢单开始下单获取redis中排队信息(list类型),开始校验
校验账号是否异常
24小时是否购买过该商品
是否存在未支付的秒杀订单
该秒杀商品是否还有库存
该秒杀商品抢购人数是否达到上限
下单,下单成功后库存递减,把下单信息保存到redis中,同时更新排队状态
用户可以主动查询订单状态,查询redis(提供主动查询接口)
抢单成功后会通过rabbitmq(集群)发送一个消息发送给延时队列发送订单id,用户id,秒杀商品id,延时5分钟,目的是处理未支付订单
5分钟后监听rabbitMQ监听延迟队列,通过rabbitmq发来的消息查询redis对应的订单,订单如果存在则表示没有支付,需要关闭支付(微信),回滚redis中的库存,删除redis中清单排队信息
抢单成功进入调用支付服务,进行付款,支付成功后会删除redis相关数据,删除订单信息,删除排队信息,同时把数据同步到mysql
秒杀时间段内没有买完秒杀商品,则需要把redis中剩余库存数量的商品,同步到mysql中
mysql读写分离,需要先读后写,该怎么操作
暂未实现
缓存机制
缓存机制
先更新数据库,再更新缓存
先删除缓存,再更新数据库
先更新数据库,再删除缓存
依赖注入
Laravel

通过容器实现依赖注入可以有选择性的加载需要的服务,减少初始化框架的开销
不是在代码内部创建依赖关系,而是让其作为一个参数传递,这使得我们的程序更容易维护,降低程序代码的耦合度,实现一种松耦合
thinkphp
对类的依赖通过构造器完成自动注入
依赖注入的类统一由容器进行管理,大多数情况下是在自动绑定并且实例化的
resultful风格
软件架构风格,而不是标准,只是提供了一种设计原则和约束条件
特点
每种url代表了一种资源。
客户端和服务器之间,传递这个资源的某种表现层
客户端通过四个http动词,对服务器资源进行操作。实现表现层状态的转化。
动作
GET,对应select:是从服务器查询,可以在服务器通过请求的参数区分查询的方式。
POST,对应Create:在服务器新建立一个资源,调用insert操作。
PUT,对应update操作:在服务器更新资源,调用update操作。
DELETE,对应DELETE操作,从服务器删除资源,调用delete语句。
PATCH,对应update操作,在服务器更新资源,客户端提供改变的属性(目前没用过)
网络攻击
sql注入
原理

用户利用在表单字段输入SQL语句的方式来影响正常的SQL执行
防范
使用mysql_real_escape_string()过滤数据
手动检查每一数据是否为正确的数据类型
使用预处理语句并绑定变量
使用准备好的预处理语句
分离数据和SQL逻辑
转义
XXS攻击
原理

由用户输入一些数据到你的网站,其中包括客户端脚本一般情况下是JavaScript。如果你没有过滤就输出数据到另一个web页面,这个脚本将被执行。
防范
为了防止XSS攻击,使用PHP的htmlentities()函数过滤再输出到浏览器
使用PDO拓展
转化像<>这种敏感字符
跨站点请求伪造(CSRF)
原理

一个页面发出的请求,看起来就像是网站的信任用户,但不是的
防范
生成另一个一次性的令牌并将其嵌入表单,保存在会话中(一个会话变量),在提交时检查它(Token)
对用户会话采用适当的安全措施,比如给每一个会话更新id和用户使用SSL
优惠劵
为用户最优选
用户选择优惠卷实时更新价格
优惠券的使用时间是否在有效时间内
用户是否满足使用该优惠券的条件

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值