zoukankan      html  css  js  c++  java
  • redis缓存击穿,缓存穿透,缓存雪崩

    缓存击穿:   

      强调一个点的穿透

      某个时间点,某个热点数据过期失效,同时有大量的访问(双十一,秒杀...)请求进来,所有的请求直接砸向MySQL数据库,持续的并发就穿破了缓存

      解决方案: 1,设置热点数据永不过期 2,加互斥锁/分布式锁,每次只有拿到锁的线程查询MySQL,获取到数据,在会写到redis缓存

    缓存穿透:

      强调数据不存在,缓存未命中

      很多的用户请求,redis缓存都没有命中,最终都走到MySQL查询,(mysql也没有查询到数据,也就不能回显到redis,像是网站恶意攻击)

      解决方案: 

        布隆过滤器: 布隆过滤器是一种数据结构,判断这个数据是否存在。在查询的时候进行校验,不符合则丢弃。

    缓存雪崩: 

      强调一个面

      在某一个时间段,缓存集体失效(redis挂了)

      解决方案: 

        1,Redis的高可用(集群) 

        2, 限流降级,缓存失效后的处理,(加锁,返回预定的对象)

        3,数据预热 ,防止大量数据平滑的失效

  • 相关阅读:
    自定判断代码的执行环境
    将某个Qt4项目升级到Qt5遇到的问题[转]
    QT 智能提示设置
    c++基础 explicit
    Qt 5.2 Creator 和 vs2012 QT 插件的安装
    servlet乱码问题总结
    c++基础 使用智能指针
    Servlet学习之web服务器Tomcat 详解
    Windows数据类型
    友元类
  • 原文地址:https://www.cnblogs.com/alenblue/p/12929598.html
Copyright © 2011-2022 走看看