缓存的常见分类和优缺点
背景
分布式架构中,使用缓存可以优化绝大部分的性能。
分类
按照谁来操作数据源可以分为两类缓存;
通路缓存
缓存组件直接连接数据源并更新缓存
使用场景:
- CDN 处理静态资源;
- 反向代理缓存 处理动态资源
旁路缓存
应用程序直接连接数据源更新缓存
使用场景:
- 本地缓存: 数据存在jvm的堆中;
- 分布式缓存: 路由算法, hash(key)/length ,主要通过hash表来实现;
优缺点
优点:
- 响应更快,内存的速度远远大于磁盘和远程获取;
- 节省计算资源,直接缓存的是结果;
- 可以降低压力, cdn可以降低web访问的压力, 反向代理可以降低数据库的访问压力
缺点:
- 数据脏读;(过期失效和失效通知来处理)
- 热点数据难以识别;
客户端也可以使用缓存,减少对静态资源的访问;