2020年10月27日 天学网14:50 视频面试 时长:15min

1.简单的做个自我介绍

巴拉巴拉,巴拉巴拉。。。。。
(当时我主要侧重讲了第一个也就是最近的项目)

2.你说你在项目中用了Redis,具体是怎么用的?

当时回答:我用Redis主要作为一个缓存中间件,来分担数据库的压力,当用户进入秒杀页面,首先在缓存读取商品信息,若没有就去数据库查询,把查询结果存在缓存中,再进行操作。
标准回答
1.秒杀商品查询:
进入到秒杀商品首页时,从Redis缓存中读取秒杀商品,如果商品的集合不存在,从数据库中把当期符合的秒杀商品记录读取到Redis缓存中,存入到hash中,从缓存读取,在Java中对集合中的商品按照平台规定的排序字段进行排序,显示在页面;
2.秒杀抢购下单:
进入到秒杀商品的详情页,点击抢购时,判断缓存中是否存在秒杀商品且数量是否大于0,如果满足则抢购成功,生成订单存入到缓存的hash中,key是userID值是HashMap,HashMap中存储的是这个用户的订单,key是订单编号,value是订单对象。秒杀商品的数量-1,如果秒杀商品的数量为0,将秒杀商品从缓存中删除;
3.订单支付:
进入支付页面时,发送一个获得二维码URL的Ajax请求,访问微信支付的远程接口,根据订单号、金额获得一个URL,根据QRious插件生成二维码,支付页面再发送一个Ajax请求,每隔3秒调用微信支付查询功能,轮询5分钟,如返回支付成功,则向支付成功页面跳转,将订单写入到数据库中,从缓存中删除,如果支付失败或支付超时,将订单从缓存中删除,将缓存中的秒杀商品数量+1.

3.当商品的库存为0时,你是怎么去判断的?

恶补路径:(1)关于电商库存扣除实现思路(2)关于电商库存扣减的解决方案

4.假如你现在有100件商品,有1000个人请求,你该怎么请求?

当时回答:磕磕巴巴,把面试官的问题自己又重复了一遍,然后说就是用一个消息队列,把这些请求放在消息队列中,等过了请求高峰期后,然后逐一去消化这些请求,然后去判断库存,当库存小于等于0时,之后的请求就转变为无效请求(写面经的时候想想自己当时说的是啥玩意啊),这些失败的请求就不在往下执行,就告诉用户请求失败。
恶补路径:(1)用分布式锁来防止库存超卖,但是是每秒上千订单的高并发场景,如何对分布式锁进行高并发优化来应对这个场景?(2)关于电商秒杀系统中防超卖、以及高性能下单的处理方案简述

5.那你用MQ如何告诉用户秒杀失败的?

当时回答:又磕磕巴巴,这个当时说实话自己不会,我只知道自己可以用MQ去解决这个事情,当时没有具体的去实现,当时我就说:“跳转了一个页面,然后告诉他秒杀失败”。
恶补路径:SpringBoot集成RabbitMQ -消息确认

6.数据库用的多吗?比如优化啊,统计啊了解吗?

当时回答:听到这个问题时,我就知道面试官大概就会问数据库的优化比如索引什么的,我当时真的很紧张了,以为之前答的不好,所以现在脑子有点蒙,差不多就已经乱了,我当时就感觉大脑停止了,哎,我就说优化这方面了解的不多,事实之前我是看过索引的,但是当时就已经蒙了,没思路了,节奏也乱了就说通过建立索引来提高数据库的性能。
恶补路径:MySQL数据库优化的八种方式(经典必看)

7.所以都有哪几种索引?

当时回答:沉默了30秒,乱了,就没回答上来。面试官看我也答不上来 ,就直接下一个问题了…
恶补路径:深入理解MySQL索引原理和实现——为什么索引可以加速查询?

8.假如现在有一个表,里面有三个字段:“学校”、“姓名”、“性别”,我想知道这里面有多少个学校怎么统计呀?

当时回答:可以用学校作为一个分组查询。

9.怎么分组,能简单说一下嘛?

当时回答:然我直接说的sql语句–>“select count(*)from 表 group by 学校”

总结:

这场面试整体来说很不理想,自己给自己挖坑,紧张,我认为紧张还是因为自己不会、不熟练等等,加油吧,不会就回去继续给我恶补!!!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

@赵亮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值