1.为什么及什么时候使用缓存
前面对三级分类请求已经做了几方面的优化,然而吞吐量还不算太理想,这个时候我们就需要使用缓存了
什么场景需要使用缓存呢?
读模式下基本的流程
伪代码及注意设置过期时间
写模式下基本的流程
这个我就不多说了,就是在写入数据库的同时把缓存也同时更新
2.本地缓存与分布式缓存
本地缓存适用于单机应用,比如map做本地缓存,就是
如果是分布式情况下
分布式本地缓存带来的问题
1)缓存不共享
在这种情况下,每个服务都有一个缓存,但是这个缓存并不共享,水平上当调度到另外一个台设备上的时候,可能它的服务中并不存在这个缓存,因此需要重新查询。
(2)缓存一致性问题
在一台设备上的缓存更新后,其他设备上的缓存可能还未更新,这样当从其他设备上获取数据的时候,得到的可能就是未给更新的数据。
分布式缓存
数据全都放在中间件中,做到缓存数据共享,比如redis,中间件如果容量不够也可以通过集群来解决