1. Redis-缓存预热

缓存预热是指在服务启动或者流量高峰期之前,提前将数据加载到缓存中。避免因为缓存事先没有数据,大量请求直接落入到数据库中。

可以通过以下几种方式进行缓存预热:

  • 应用启动时加载:应用启动还未提供对外服务之前,查询数据库并加载到缓存中
  • 运行过程中加载:应用运行过程中,加载热点数据到缓存中

在应用启动时进行加载缓存,是比较常用的一种方式,例如,系统配置、系统参数、菜单等业务数据,都会放在基础应用中,并在启动时全量加载到数据库中。

如果使用的是 Spring Boot 则更加方便,在其启动阶段,提供了各种钩子用于执行一些初始化操作:

  • 启动监听事件
  • @PostConstruct
  • CommandLineRunnerApplicationRunner
  • InitializingBean. afterPropertiesSet

在运行过程中加载热点数据,可以使用以下方式:

  • 定时加载 :添加定时任务,在使用高峰期前加载缓存
  • 监听 :使用事件监听或者消息队列,触发缓存加载

2. 优点

  • 提高响应速度:用户请求数据时,可以直接从缓存中获取,减少了数据库的访问次数,提高了响应速度。
  • 减轻数据库压力:减少对数据库的直接访问,可以减轻数据库的负载,提高数据库的稳定性和性能。
  • 提高系统吞吐量:通过缓存预热,可以提高系统的处理能力,增加系统的吞吐量。

3. 总结

用大白话说就是,把访问频繁的数据都先缓存到Redis中,数据缓存,也就是平时我们最常使用的。