背景

分布式架构中,使用缓存可以优化绝大部分的性能。

分类

按照谁来操作数据源可以分为两类缓存;

通路缓存

缓存组件直接连接数据源并更新缓存

使用场景:

CDN 处理静态资源;反向代理缓存 处理动态资源旁路缓存

应用程序直接连接数据源更新缓存

使用场景:

本地缓存: 数据存在jvm的堆中;分布式缓存: 路由算法, hash(key)/length ,主要通过hash表来实现;优缺点

优点:

响应更快,内存的速度远远大于磁盘和远程获取;节省计算资源,直接缓存的是结果;可以降低压力, cdn可以降低web访问的压力, 反向代理可以降低数据库的访问压力

缺点:

数据脏读;(过期失效和失效通知来处理)热点数据难以识别;

客户端也可以使用缓存,减少对静态资源的访问;