1.什么是缓存
将程序中经常查找的对象存在内存中,在需要的时候可以快速调用,不需要去数据库查询。
2.缓存的分类
2.1本地缓存
与业务一起的缓存,比如mybatis的一级缓存、二级缓存
缺点:多个服务、集群部署无法相互访问
常见本地缓存:
- 一级、二级缓存
- guava cache
- 框架本身的缓存
- Caggeine
2.2分布式缓存
与应用分离的缓存组件或服务,多节点共享存储。常见有redis、Memcached等
3.如何选择本地缓存和分布式缓存
与业务结合的话,高并发一般都有本地缓存和分布式缓存共同存在
4.热点key
缓存中的key对应的value存储在集群中的一台机器,使同一时间大量数据涌入,带宽增加。
解决方案:本地缓存热点key,每次请求时首先看本地缓存是否存在,不存在则访问分布式缓存