一面:
    1:自我介绍
    2:项目技术栈,难点,亮点,怎么解决的?
    3:Redis主要是怎么样的场景?
    4:怎么保证数据库和Redis的一致性的。延时双删怎么实现的?定时任务是有单独的表删除哪些数据吗?工作中的缓存操作是封装起来的还是要自己写?你所了解的缓存一致性问题都有哪些解决方式?(消息队列延时)
    5:项目里是Redis集群吗?(不是,主备,了解过哨兵)那Redis中数据过多怎么办?上千万的数据存不下怎么办?MYSQL怎么做数据库拆分?依赖一个键值,
    5:分布式锁是怎么做的?如果现在让你自己实现分布式锁怎么实现?如果要是一个请求拿到锁后,机器就挂了,新的请求拿不到怎么办?那看门狗怎么判断是挂掉了还是应该继续延时?(Redisson实例没有失效,业务没有完成,就会自动续锁,如果Redisson实例失效就不会再续锁,到指定时间就关闭。)
    6:Redis还有什么场景?你所知道的都可以?
    (分布式Session,秒杀预热,限流降级,面对大的流量怎么解决?如果秒杀场景下,用到的知道是哪些表,可以进行预热。先预热然后再放请求进来。)
    6:Java中常见的锁有哪些?实现有哪些?自旋锁是怎么?有什么优点?为什么线程的挂起和唤醒为什么耗时?本质是什么?
    7:偏向锁是啥?偏向锁是通过什么方式加锁和解锁的?(CAS),CAS算法具体怎么实现的?那他有什么缺点?怎么解决?(加上时间戳,特殊标识)CAS在Java中是通过那个类实现的?(不太了解,答了一下对象头无锁情况下……应该是UN萨芬、)
    8:怎么保证线程安全的?读写锁底层AQS实现原理?几种实现类实现有什么不同?AQS里面尝试加锁解锁是怎么实现的(CAS,可能还是想问unsafe)
    9:volatile的实现时怎么样的?可见性和禁止指令重排都是这么实现的?双重检查锁的实现?
    10:常用集合?ArrayList和LinkedList是区别?HashMap的实现怎么实现的?
    11:设计模式在项目中有用吗?怎么用的?代理模式AOP是怎么实现的?原理是怎么样的?有遇到过事务失效的场景吗?为什么会事务失效?都有哪些解决方案?他自己的AOP上下文。
    12:SQL的优化怎么做的?如果有一个慢查询用不上索引,怎么优化索引优化SQL?排序没有用索引怎么优化的?索引的结构是怎么样的?那怎么优化排序的索引的?
    13:索引的锁都有哪些实现?加锁本质上锁的是啥?如果age >20 会给谁加锁?间隙锁是怎么实现的?覆盖索引和回表分别是啥啊?为什么推荐使用自增的主键?UUID有什么不同?(查的时候,树的结构上,回溯的少,叶子节点之间有链表,磁盘读写少)
    14:业务场景:大文件用户电话号码去重,怎么做?说一说实现思路?
    答:布隆过滤器,插入唯一表
    15:工作中mq都是什么场景?怎么保证收到消息(ack)有其他补偿措施吗?(答了死信队列,面试官说了上下游对账),消息的量怎么样?遇到的问题?消息积压怎么解决的?上下游速度不匹配怎么办?(多开几个消费者)
    反问:
    现在的技术,阿里常用的技术,几乎全都是打通的,大部分开源的,还有一个没开源的,数据库分布分表中间件,主营的广告,会有大流量QPS。缓存自研的,和Redis很像。内部交流论坛可以学到很多。
    总结:遇到的最好的一个面试官,不像是面试,更像是交流,指导。面试一下收获很多。

    二面:
    介绍一下在校的表现以及参加工作以后的心得?
    介绍项目?模块有哪些?你主要负责?解释负责的业务?调用量QPS有多大?整个项目的部署是什么样?
    两台数据库是主备还一读一写?怎么做的主备?各个服务器有什么用?
    球从多高德楼层摔碎?
    集群十台机器定时启动一个任务,但是这个任务同一时间只能有一台服务去执行?
    获取资源值,或者令牌;
    获取资源值的方式怎么实现?令牌怎么实现?为什么使用Socket通信?Http简单吗?
    如果让你设计高并发网站?比如淘宝,你会有哪些措施实现他的高并发特性?
    如果公司要设计一个考勤打卡的系统,认为公司的人非常非常多,如果设计一个考勤打卡你这么设计?
    互联网企业高并发分布式经验和知识,分布式高并发的一些处理逻辑,
    Redis,Dubbo,Zookeeper,K8S,SpringBoot,SpringCloud,还有一些分布式调度,高并发场景如何实现?
    大数据的一些,实时计算的,