跳至主要內容
Redis面试题

Redis面试题

面试官:我看你做的项目中,都用到了Redis,你在最近的项目中那些场景用了Redis?

候选人:一定要结合项目,1. 为了验证项目场景的真实性;2. 为了作为深入发问的切入点;

  • 缓存(缓存三兄弟:穿透、击穿、雪崩;双写一致性、持久化、数据过期策略、数据淘汰策略)
  • 分布式锁(setnx、redisson)
  • 消息队列、延迟队列 (何种数据类型)

缓存穿透、击穿、雪崩


tommy大约 36 分钟Redis面试题
框架篇面试题-参考回答

框架篇面试题-参考回答

知识网络架构

知识框架
知识框架

Spring

面试官:Spring框架中的单例bean是线程安全的吗?

Spring框架中的Bean是单例的吗?

Spring框架中的Bean是单例的,在注册Bean时,可以通过使用Scope注解声明当前的Bean是singleton或者prototype。如果不显示声明,默认为单例。

如何判断Spring开发中的线程安全问题?

Controller方法中接收的参数是局部变量,一般没有线程安全问题;但是如果在Controller类中定义了全局变量,并且这个全局变量是可修改的,则这个变量就有线程安全问题。如果这个全局变量没有状态(不可被修改,例如注入的Service对象、dao对象),则这个全局变量就是线程安全的。

所以在日常开发过程中应该注意,在Bean中尽量避免定义可被修改的全局成员变量,因为并不能保证他的线程安全。


tommy大约 15 分钟SpringSpringMVCMyBatisSpringBoot面试题
消息中间件面试题-参考回答

消息中间件面试题-参考回答

讲解知识点架构:

知识点架构

RabbitMQ的使用场景:

  • 异步发送(验证码、短信、邮件)
  • MySQL和Redis、ES之间的数据同步
  • 分布式事务
  • 削峰填谷

面试官:RabbitMQ-如何保证消息不丢失


tommy大约 12 分钟RabbitMQKafka面试题