zoukankan      html  css  js  c++  java
  • 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找到数据就不会去抢分布式锁了)

  • 相关阅读:
    database使用
    画图工具
    宝塔面板权限不足问题解决
    nginx查看并发数量
    台式机未插入扬声器或者耳机
    键盘出现乱码解决
    lnmp宝塔面板问题
    nginx+mysql双主搭建
    zabbix客户端安装
    java生产条形码
  • 原文地址:https://www.cnblogs.com/glz666/p/14919202.html
Copyright © 2011-2022 走看看