为什么要使用缓存

问题

项目中为什么要使用缓存?有什么好处?使用不当有什么后果?

分析

为什么使用,也就是说要回答出来使用缓存的优缺点就可以了。

项目中的缓存如何使用

这个需要结合自己的业务场景来说,没有的话哪怕硬加一个。

为什么使用缓存

主要是两方面,缓存可以实现高性能,高并发

1、高性能
我们都知道,查询的时候缓存的性能比数据库高,那么程序中我们如何应用呢。
举个例子,比如现在有一个商品数据,一般这种数据变动是比较小的。开始时每个用户都是往数据库中访问,假如说每一个都要500s吧,那如果在1分钟有1000个用户来查询数据,是不是就得链接数据库1000次。
如果我们将这个数据也存在缓存中一份呢,如图:
为什么要使用缓存_第1张图片
这样一来,虽然第一个用户查询的时候耗时会稍长一些, 但是后面那1分钟1000个用户来访问,是不是就快了许多,实现了高性能查询数据。

2、高并发

假如现在有100万用户访问你的数据,请求达到4000次/s。那这时候如果只靠数据库的话,基本就要被压垮了。
但是如果使用了缓存,将一些数据由缓存来提供,那可能就是缓存分走3000次/s,数据库1000次/s。这样数据库压力没那么大,就可以正常使用了。为什么缓存可以实现高频次的并发访问,因为缓存的底层是由内存来说实现的,内存天然的性能就比磁盘更好,别说4000/s,哪怕是4万/s也是没问题的。

你可能感兴趣的:(面试,java,缓存,数据库,java,mysql,raids)