葡萄城一面

感觉面试官不是很尊重人,面试的过程中一直和旁边的人讲话,我说完了又过来问我已经说过的东西

比较熟悉的技术栈是什么?

实习期间做了什么工作?具体一点

讲一下短链接项目

讲一下分库分表怎么做的,为什么要分表,你的分片键用的什么?

你消息队列如何实现幂等性处理的?如何保证消息只被消费一次?保证消息不会丢失?

怎么用redis+lua脚本实现限流的?

lua脚本为什么是原子性的?

然后这时候开始说,看到很多人都是用的短链接项目

如何实现点赞排行榜的?

讲一下缓存三兄弟

乐观锁如何保证不会超卖?这里说了半天,我说是通过先将库存缓存预热到redis中,然后先通过redis decrement命令去扣减缓存,如果库存小于0了就直接返回给用户说已经被抢完了,不会再去操作数据库了,但是感觉面试官一直没听懂,开始说你这里redis减到负数了就已经超卖了,然后说你这里不是先查再减吗,这也不是原子操作,也会超卖,然后我又说我用的是decrement命令,直接去减了,然后说半天感觉他还是没听懂。

然后开始写题

先创建一个row类,row类中有key,value两个属性,现在传入一个list集合,集合存放的是row对象,如果集合中row对象有相同的key,但是value互为相反数,就将这两个对象都删去,返回去重后的集合

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务