应用缓存

(1) 内存缓存

在内存中缓存数据,效率高,速度快,应用重启缓存丢失

(2) 磁盘缓存

在磁盘缓存数据,读取效率较之内存缓存稍低,应用重启缓存不会丢失
代码组件:Guava、Ehcache
服务器:Redis、MemCache

多级缓存

在整个应用系统的不同层级进行数据的缓存,多层次缓存,来提升访问效率;
比如:浏览器 -> CDN -> Nginx -> Redis -> DB (磁盘、文件系统)

缓存的使用场景

  1. 经常需要读取的数据 (磁盘IO、静态文件、经常从数据库查询的数据)
  2. 频繁访问的数据 (可以预测的数据库查询)
  3. 热点数据缓存 (类似于热搜,我们无法推测的热点数据)
  4. IO 瓶颈数据 (数据的读写,数据的输入输出)
  5. 计算昂贵的数据
  6. 无需实时更新的数据 (比如一些金融数据,绝对不能放到缓存中)
  7. 缓存的目的是减少对后端服务的访问,降低后端服务的压力