1、面试题
在项目中缓存是如何使用的?缓存如果使用不当会造成什么后果?
2、面试官心里分析
这个问题,互联网公司必问,要是一个人练缓存都不清楚,那确实比较尴尬。 只有问道缓存,上来第一个问题肯定是先问你项目哪里用了缓存?为啥要用?不用行不行?如果用了有什么不良后果?
这就是看看你对你用缓存这个东西背后,有没有思考,如果你就傻乎乎的瞎用,没发给面试官一个合理的解答。那我只能说,面试官对你印象肯定不太好,感觉你平时思考太少了,就知道干活。
3、面试题剖析 一个一个来看
(1)在项目中缓存是如何使用的 ?
这个结合自己项目的业务来,如果你用了那恭喜你,如果你没用那不好意思,你硬加也得加一个场景吧
(2)为什么在项目里要用缓存呢?
用缓存,主要俩用途,高性能和高并发
高性能:简单的说,高性能(High Performance)就是指程序处理速度快,所占内存少,cpu占用率低
高并发:高并发(High Concurrency)是互联网分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计保证系统能够同时并行处理很多请求。 高并发相关常用的一些指标有响应时间(Response Time),吞吐量(Throughput),每秒查询率QPS(Query Per Second),并发用户数等。
- 响应时间:系统对请求做出响应的时间。例如系统处理一个HTTP请求需要200ms,这个200ms就是系统的响应时间。
- 吞吐量:单位时间内处理的请求数量。
- QPS:每秒响应请求数。在互联网领域,这个指标和吞吐量区分的没有这么明显。
- 并发用户数:同时承载正常使用系统功能的用户数量。例如一个即时通讯系统,同时在线量一定程度上代表了系统的并发用户数。
3)所以你要结合这俩场景考虑一下,你为啥要用缓存?
一般很多同学项目里没啥高并发场景,就别折腾了,直接用高性能场景吧,就思考没有荤菜结果的负责查询场景,后续可以大幅度提升高性能,优化用户体验。
(3)用了缓存之后有啥不良后果?
这个要是没有考虑过,那就尴尬了,面试官会觉得你头脑简单,四肢也不发达。你别光是傻用一个东西,多考虑背后的一些事儿。
常见的缓存问题有三(当然其实有很多,我这里就说三,你能说出来更多也可以)
1)缓存与数据库双写不一致
2)缓存崩塌
3)缓存穿透
后续讲这个三个问题