滴滴java后台面经

总共三面,都主要根据简历上的项目来问的。

一面

1. 描述秒杀系统的秒杀逻辑过程?

1)首先秒杀系统中有商品列表页和商品详情页,当用户在商品列表页点击想要秒杀的商品,会跳转到商品详情页,商品详情页会有一个倒计时,如果未到秒杀时间或者秒杀时间结束或者商品已卖完,立即秒杀的按钮是灰的,不能点击的。

2)如果到了秒杀时间,用户点击立即秒杀的按钮,请求到达后端后会先判断用户是否登录(从cookies中读取sessionId,并去redis中通过sessionId查找用户信息),如果没有登录,则返回登录页面。

3) 如果登录了,则判断是否为此用户和此商品生成过秒杀路径(redis中是否有记录uid_gid),如果没有,则为此用户生成一个随机的uuid并MD5加密后添加到秒杀路径中作为此用户的专有秒杀路径,将uid_gid作为key,path作为value放入redis中。

4)用户通过此秒杀路径向后端发起秒杀请求,后端校验此path是否与redis中记录的一致。一致的话判断此商品在redis中的记录的库存是否>0。然后判断是否为此用户此商品减过库存(看redis中是否记录过),没有的话就判断redis中是否存在此用户购买此商品的订单,也没有的话就执行预减库存,即先将redis中此商品库存减1,并记录为此用户减过此商品的库存。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值