面试被问了一线大厂必备的高并发秒杀面试题

什么是“秒杀”及其应用“秒杀”这一业务场景在如今已经不是什么新鲜名词,它本质上属于短时突发性高并发访问问题,业务特点如下:

定时触发,流量在瞬间突增

秒杀请求中常常只有部分能够成功

秒杀商品数量往往有限,不能超卖,但能接受少卖

不要求立即返回真实下单结果

分析一下这些秒杀场景的典型特点,我们不难看出,秒杀场景属于典型的高并发场景,对系统的冲击较大。不来复杂的,咱们先来看一道简单的redis面试题:在项目中Redis缓存是如何使用的?为什么要用缓存?缓存使用不当会造成什么后果?面试官心理分析这个是互联网公司必问,要是一个人连Redis缓存都不太清楚,那做毛线开发。上来第一个先问问你项目哪里用了缓存?为啥要用?不用行不行?如果用了以后可能会有什么不良的后果?这就是看看你对缓存背后有没有思考,如果你就是傻乎乎瞎用,没法给面试官一个合理的解答,那面试官对你第一印象打折扣。面试题剖析项目中缓存是如何使用的?需要结合自己项目的业务讲解。为什么要用缓存?用缓存,主要有两个用途:高性能、高并发。高性能假设一个场景,一个请求过来,你各种乱七八糟操作mysql,半天查出来一个结果耗时ms。但是这个结果可能接下来几个小时都不会变了,或者变了也可以不用立即反馈给用户,那么此时咋办?缓存啊,折腾ms查出来的结果扔缓存里,一个key对应一个value,下次再有人查,别走mysql折腾ms了,直接从缓存里,通过一个key查出来一个value,2ms搞定。性能提升倍。对于一些需要复杂操作耗时查出来的结果,且确定后面不怎么变化,但是有很多读请求,那么直接将查询出来的结果放在缓存中,后面直接读缓存就好。高并发

你有个系统,高峰期一秒钟过来的请求有1万,一个mysql单机绝对会死掉。你这个时候就只能上缓存,把很多数据放缓存,别放mysql。缓存功能简单,说白了就是key-value式操作,单机支撑的并发量轻松一秒几万十几万,支撑高并发soeasy。单机承载并发量是mysql单机的几十倍。

然后再问用了缓存之后会有什么不良后果?你是怎么解决的?如果这些高并发问题你解决不了,那么问到底层原理的高薪岗位那么你也很难面试成功,那你工作上很可能会有下面几个问题:技术不精:表面上用过很多技术,一直呆在舒适圈觉得自己很牛逼了,面试大厂、高薪资岗位却屡屡碰壁.....项目经验不足:没有经历过大型项目,分布式、微服务部署,且对底层和源码只是了解;职场瓶颈期:薪资涨不上去,很难升职,用的都是老技术只能等着被淘汰;投完简历就凉凉:简历没有亮点,且非名校非科班出身......以上问题怎么解决?刚好在这里分享一份PHP架构师进阶体系,适合1-6年PHP开发学习,经过前IBM12年资深架构师联合腾讯等大厂名师四年时间打磨,相信它会给你带来很多收获。(面试及视频资料,文末获取)能掌握以上技术这些人必然具备在技术上有独当一面的能力,我特地为大家准备了一套精品PHP架构师教程,适合1-6年内PHP开发人员,顺利突破30K+的薪资。添加女神老师需要学习架构技术交流的立即扫码入群添加架构师助理获取,里面覆盖了1-8年PHP开发者!更有海量PHP中级→高级→架构学习资料和相关进阶视频,BAT大厂面试宝典等;每晚还有前IBM12年资深架构师讲解免费PHP高级进阶直播课,赶紧加入吧!部分资料展示:前66名限时精品福利:①分布式消息中间件及多进程实战②Redis缓存击穿/缓存雪崩预防策略③腾讯高级PHP工程师精品笔试题④Swoole并发百万的协程使用及分析扫描下面


转载请注明:http://www.aierlanlan.com/tzrz/464.html