缓存预热,缓存穿透,缓存击穿,缓存雪崩是怎么回事?

  1. 缓存预热
    系统启动前,提前将相关的缓存数据直接加载到缓存系统;避免在用户请求的时候,先查询数据库,然后再将数据缓存
  2. 缓存穿透
    查询一个不存在的数据,由于缓存未命中,最终去查数据库;当高并发时,数据库可能崩溃
    解决:对查询结果为null的数据进行缓存,并设置一个短暂过期时间;key加密,问题出现后,临时启动防灾业务key,对key进行业务层传输加密服务,设定校验程序,过来的key校验
  3. 缓存雪崩
    缓存中较多的key集中过期;缓存未命中,向数据库获取数据
    解决:构建多级缓存架构,Nginx缓存+redis缓存+ehcache缓存;数据有效期策略调整,过期时间使用固定时间+随机值的形式;
  4. 缓存击穿
    某个key过期,该key访问量巨大,在短时间内发起了大量对数据库中同一数据的访问
    解决:加锁,阻止同时查数据库,有了结果后放入缓存;后面进来的请求直接查缓存

猜你喜欢

转载自blog.csdn.net/weixin_51681634/article/details/113141898