• redis缓存穿透、击穿、雪崩


    缓存穿透、击穿、雪崩

    原文:https://mp.weixin.qq.com/s/_sqGyTvMphOLPpbSCLh0Yw

    总结,请求绕过redis,直接作用到mysql上

    雪崩:key大面积失效(定时任务刷新缓存,key的过期时间相同,某个时间点全部失效)
    
    解决方案:失效时间都加个随机值避免同一时间大面积失效
    
    场景:app首页数据,所有首页的Key失效时间都是12小时,中午12点刷新的,我零点有个秒杀活动大量用户涌入,假设当时每秒 6000 个请求,本来缓存在可以扛住每秒 5000 个请求,但是缓存当时所有的Key都失效了。此时 1 秒 6000 个请求全部落数据库,数据库必然扛不住
    穿透:用户恶意使用不存在的key,则请求会到达数据库(如果这个用户并发一直请求就会。。)
    
    解决方案:代码层做好数据效验
    
    场景:使用不存在的用户id,如-1,请求接口
    击穿:一个Key非常热点,在不停的扛着大并发,大并发集中对这一个点进行访问,当这个Key在失效的瞬间,持续的大并发就穿破缓存,直接请求数据库
    
    解决:将key设置成永不过期,或者自动续期

     分布式锁(官方推荐redisson)

    maven

    <!-- https://mvnrepository.com/artifact/org.redisson/redisson -->
    <dependency>
        <groupId>org.redisson</groupId>
        <artifactId>redisson</artifactId>
        <version>3.12.5</version>
    </dependency>

    springboot项目

    <!-- https://mvnrepository.com/artifact/org.redisson/redisson-spring-boot-starter -->
    <dependency>
        <groupId>org.redisson</groupId>
        <artifactId>redisson-spring-boot-starter</artifactId>
        <version>3.12.5</version>
    </dependency>

    redisson官方中文文档

     https://github.com/redisson/redisson/wiki/%E7%9B%AE%E5%BD%95

  • 相关阅读:
    搜狗输入法用户体验
    Day06
    Day05
    Spark-RDD操作(26个常用函数附实例)
    软件工程培训第五天(hive进阶)
    hive窗口函数
    hive操作(行转列,列转行)
    Hive中使用case then分情况求和
    hive分组排序(rank函数+partiton实现)
    软件工程培训第四天总结,hive的学习
  • 原文地址:https://www.cnblogs.com/javalbb/p/12825449.html
Copyright © 2020-2023  润新知