1、为什么使用缓存?
对于更新频率不高并且读取频率比较大的数据,没必要每次都读取数据库。第一次读取以后,将数据放入缓存,后面再读取数据则直接从缓存获取,提高系统性能。
数据库本身并发量是非常有限的,mysql的qps一般是几千左右,如果所有请求都直接打到数据库,数据库很有可能会直接挂掉。Redis是直接基于内存进行操作的,天生就是支持高并发。根据上一篇的压测结果,单机redis并发都是几十万级别的,并发相当高。
2、在项目中是如何使用缓存的
对于项目中一些读取频率比较高的,同时数据改变频率比较小的数据,可以放入缓存中,提高并发和性能。如果数据发生改变,更新数据库的同时更新缓存。
比如电商的详情页数据,项目中接口的返回结果等等
3、使用缓存会有什么不良后果?
- 缓存与数据库双写不一致
- 缓存雪崩、缓存穿透
- 缓存并发竞争