IT老齐的架构课程之缓存

使用缓存的目的

提升性能

缓存分类

  • 客户端

    主要对浏览器的静态资源进行缓存,通过在浏览器端设置Expires(过期时间点)或者Cache-Control(时间段)来告诉浏览器将资源缓存到客户端本地,从而减少多次请求同一个静态资源带来的带宽和响应时效上的损耗。

  • 应用层

    • 主要表现形式为CDN(Content Delivery Network),可以有效解决带宽集中占用以及数据分发的问题。
    • 通过Nginx实现负载均衡,将静态资源存储在Nginx服务器上,并开启压缩功能;
  • 服务层

    • 进程内缓存:比如Mybatis的一二级缓存,或者Spring框架中的@EnableCache注解。
    • 进程外缓存:典型的使用redis作为分布式缓存技术。
  • 数据层

分布式缓存引入的问题

数据一致性

如何保证数据一致性

引入消息队列的主动推送功能,推送变更消息

什么情况下适用多级缓存架构

  1. 缓存数据稳定
  2. 可能产生高并发场景,应用启动时进行预热处理,访问前将热点数据先缓存,减少后端压力
  3. 一定程度上允许数据不一致不重要的信息更新处理方式:T+1,ETL日中处理。