首页 > 其他分享 >缓存穿透、缓存击穿、缓存雪崩

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

时间:2022-11-18 21:45:05浏览次数:47  
标签:缓存 解决方案 数据库 击穿 穿透 雪崩

缓存穿透

       缓存穿透的解释是,数据既不在缓存中也不存在于数据库中,造成每次查询都会对缓存和数据库进行查询。比如:有人恶意用不存在的id参数进行接口调用,每次调用都需要穿透缓存进行数据库查询;

   缓存穿透解决方案

 ip限流:

 参数合法性验证:

    布隆过滤器(存在问题):

    缓存空值;

 

缓存击穿

     缓存击穿的原因是某个热点数据的缓存失效,导致大量的请求直接进行数据库查询

    缓存击穿的解决方案:

        热点数据访问加锁

        自动续期

        缓存不过期

缓存雪崩

前面已经聊过缓存击穿问题了。

而缓存雪崩是缓存击穿的升级版,缓存击穿说的是某一个热门key失效了,而缓存雪崩说的是有多个热门key同时失效。看起来,如果发生缓存雪崩,问题更严重

雪崩可能的原因:

     1.缓存服务器down机

     2.多个热点数据同时失效

雪崩的解决方案:

     1.过期时间设置增加随机数或设置永不过期

     2.缓存服务器高可用

 

以上的方案都是针对具体问题的解决方案,在实际生产中,有一些通用的解决方案

    1.合理的限流策略

    2.增加系统各部分的报警阈值并积极响应

    3.数据合法性判断,将非法请求在最开始就拦截住

   4. 合理的规划系统资源,并及时根据重大事件或者活动进行资源的拓展和响应升级;

 

标签:缓存,解决方案,数据库,击穿,穿透,雪崩
From: https://www.cnblogs.com/lsgspace/p/16817171.html

相关文章

  • 缓存一致性探讨(双删法及其改进方案)
    提到缓存,作为服务端的开发人员并不陌生,无论是本地缓存还是分布式缓存,其目的都是为了提高系统响应速度的同时减轻数据库的查询压力;在缓存开发中有个问题必需要解决,那就......
  • 【专项测试系列】-缓存击穿、穿透、雪崩专项测试
    作者:刘须华一、背景概述: R2M缓存的使用,极大的提升了应用程序的性能和效率,特别是数据查询方面。而缓存最常见的问题是缓存穿透、击穿和雪崩,在高并发下这三种情况都会有大量......
  • 图解 HTTP 缓存
    HTTP缓存分为2种,一种是强缓存,另一种是协商缓存。主要作用是可以加快资源获取速度,提升用户体验,减少网络传输,缓解服务端的压力。这是缓存运作的一个整体流程图: 强缓存......
  • 项目引入缓存Cache
    项目引入缓存Cache随着项目代码的书写变多,回过来发现,代码只局限于完成功能,或者在完成功能的基础上进行优化,但是对于性能问题考虑的不是很深入,在平时中也接触不到高并发等......
  • Redis缓存雪崩,击穿和穿透
    这三个问题的发生,会导致大量的请求直接积压到数据库,如果并发量很大,则可能会导致数据库宕机或故障。缓存雪崩 描述:大量的请求无法在redis缓存中进行处理而被发送到数据......
  • redis 缓存高可用集群
    redis集群方案比较哨兵模式在redis3.0以前的版本要实现集群一般是借助哨兵sentinel工具来监控master节点状态,如果master节点异常,则会做主从切换,将某一台salve作......
  • nginx高并发优化之缓存配置
    一、配置http{proxy_cache_path/app/cache/levels=1:2keys_zone=proxy_cache:10mmax_size=10ginactive=60muse_temp_path=off;upstreambackend{server127......
  • Redis缓存中的数据和数据库不一致
    首先关于两者数据的一致性包含有两种情况:(1)缓存中有数据时,那数据库中的数据要和缓存中的数据相同;(2)缓存中没有数据时,数据库中的数据必须是最新的。如果不符合以上两种......
  • 12 张图看懂 CPU 缓存一致性与 MESI 协议,真的一致吗?
    本文已收录到 GitHub·AndroidFamily,有Android进阶知识体系,欢迎Star。技术和职场问题,请关注公众号[彭旭锐]进Android面试交流群。前言大家好,我是小彭。在......
  • Redis 和 memache 缓存的区别
    1.数据类型 Redis数据类型丰富,支持setlisthash等类型 memcache支持简单数据类型,需要客户端自己处理复杂对象 2.持久性 redis支持数据落地持久化存储,并不是所有的数据......