• redis缓存雪崩穿透击穿及解决方案


    redis缓存穿透雪崩击穿
    缓存雪崩:redis缓存大量key在同一时间失效,导致大量请求打回到数据库(mysql),造成数据库挂掉。
    解决
    1.不要设置大量key在同一时间失效
    2.快失效时使用定时器再写入redis

    3.随机初始化失效时间

    4.redis集群,让热点key平均地分布到不同的redis节点上

    缓存穿透:redis和数据库都没有该数据,比如用户请求id=-1的数据(常见于黑客恶意大量攻击),redis没找到数据便会向数据库请求,这种数据相当于直接穿透redis。
    解决
    1.无论数据库查询的值是否为空,都缓存到redis,这样下一次再用同一个参数请求就不会穿透redis
    2.把用户ip拉黑
    3.检验请求的合法性
    4.布隆过滤器(请求数据库前筛选,如果布隆判断请求的数据不在数据库,直接pass)

    缓存击穿:redis中存在非常热点的key,当这个缓存key突然失效,大量的请求打回到数据库中
    解决
    1.设置该key不失效
    2.分布式锁(在redis和数据库间设置一个锁,抢到锁的线程就去数据库查数据再写入到redis,其他线程在redis找到数据就不会去抢分布式锁了)

  • 相关阅读:
    【基于mini2440开发板的交叉编译环境及内核树配置.
    linux 模块编译步骤(原)
    鸟哥的linux私房菜
    ios消息机制
    初学者必学文档:Objective-C语法入门(1)
    oc基础知识
    ios 人魔七七
    Usaco Open09 Gold
    USACO JAN 2012 Bronze
    USACO·2012·Feb Bronze
  • 原文地址:https://www.cnblogs.com/glz666/p/14919202.html
Copyright © 2020-2023  润新知