200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > Java程序员面试中被问到缓存问题要如何解决 – java – 前端

Java程序员面试中被问到缓存问题要如何解决 – java – 前端

时间:2020-04-25 05:27:12

相关推荐

Java程序员面试中被问到缓存问题要如何解决 – java – 前端

缓存的面试问题

缓存的面试问题有很多,偶个人总结大概有下面几点,你可以从这些方面作为面试参考。

1.为什么选用缓存?这个可以高性能高并发的方面回答面试官,由于缓存数据存储在内存中,其相对IO操作要快的多,而且内存天然就支撑高并发。

2.使用缓存做了什么?这个根据自己的项目的业务场景去回答,比如应对高并发访问热点数据,减轻数据库的压力;比如充当分布式锁,保证线程安全;比如充当消息队列;比如充当计数器;比如解决分布式应用中的共享Session问题。

3.缓存为什么快?可以从下面几点去回答:首先其数据存储在内存中,其次采用单线程避免上下文切换,还有使用多路I/O复用模型,非阻塞IO,以及一些底层的模型设计。

4.缓存的数据备份问题?这里可以有以下的相关问题,比如备份方式:Redis默认采用Rdb方式备份,符合设定的条件时redis会将内存中的所有数据自动生成一份副本保存到硬盘上,可以通过配置文件开启AOF备份。比如两种备份的区别:AOF持久化保存的数据更完整一些,但是同时会带来性能上的损耗。

5.缓存穿透问题?访问一个不存在的 key,缓存不起作用,请求会落到数据库上,如果请求量很大,数据库有可能会挂掉。解决方案:缓存空值,布隆过滤器,互斥锁排队。

6.缓存雪崩问题?缓存在同一时间内大量键过期(失效),接着来的一大波请求瞬间都落在了数据库中导致连接异常。解决方案:互斥锁排队,分散失效时间。

7.缓存无底洞问题?集群节点加机器性能没能提升,反而下降。解决方案:采用哈希一致性办法,将特定数据存在指定的缓存

希望偶的回答对你有所帮助

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。