应用缓存
(1) 内存缓存
(2) 磁盘缓存
在磁盘缓存数据,读取效率较之内存缓存稍低,应用重启缓存不会丢失
代码组件:Guava、Ehcache
服务器:Redis、MemCache
多级缓存
在整个应用系统的不同层级进行数据的缓存,多层次缓存,来提升访问效率;
比如:浏览器 -> CDN -> Nginx -> Redis -> DB (磁盘、文件系统)
缓存的使用场景
- 经常需要读取的数据 (磁盘IO、静态文件、经常从数据库查询的数据)
- 频繁访问的数据 (可以预测的数据库查询)
- 热点数据缓存 (类似于热搜,我们无法推测的热点数据)
- IO 瓶颈数据 (数据的读写,数据的输入输出)
- 计算昂贵的数据
- 无需实时更新的数据 (比如一些金融数据,绝对不能放到缓存中)
- 缓存的目的是减少对后端服务的访问,降低后端服务的压力