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

缓存雪崩/击穿/穿透

时间:2023-11-16 16:37:36浏览次数:32  
标签:缓存 过期 redis 数据库 击穿 雪崩 哈希

缓存雪崩

大量缓存同时过期,就叫缓存雪崩。

  • 缓存中有大量数据同时过期,导致大量请求缓存缺失

  • redis实例宕机

措施

  • 设置过期时间时,随机小范围打散

  • 服务降级
    缓存命令率下降到警告值或者数据库负载突然增大时,很可能发生了缓存雪崩。
    可以通过服务降级措施,来保证核心接口能正常查询数据库。也可以通过熔断措施,避免下游接口由于缓存雪崩链式导致当前服务异常。

  • 限流指标减少

redis实例恢复前,整个系统负载上线已降低,可以通过限制网关请求量来保护数据库实例不受影响。

  • 事前预防

redis服务考虑可用性,构建高可靠集群。

缓存击穿

某热点key过期,大量请求打到数据库。

措施

  • 针对特别频繁的热点数据,不建议设置过期时间

缓存穿透

访问的数据不在redis缓存及数据库中,导致每次请求都达到数据库上。

措施

  • 设置缺省空值,比如数据库中不存在,可以设置为空字符串或者0等

  • 使用布隆过滤器进行拦截判断
    布隆过滤器由一个初值都为0的bit数组和N个哈希函数组成,可以用来快速判断某个数据是否存在。
    当想标记某个数据存在时(例如,数据已被写入数据库),布隆过滤器会通过三个操作完成标记:

    1. 使用N个哈希函数,分别计算这个数据的哈希值,得到N个哈希值。
    2. 把这N个哈希值对 bit数组的长度取模,得到每个哈希值在数组中的对应位置。
    3. 对应位置的bit位置1。
  • Nginx拦截部分不合法的请求参数,减少恶意请求

标签:缓存,过期,redis,数据库,击穿,雪崩,哈希
From: https://www.cnblogs.com/kiper/p/17834166.html

相关文章

  • 缓存穿透方案之布隆过滤器
    作用:快速过滤掉不存在数据一种数据结构,特点是高效插入和查询,但是返回的结果是概率性的,不是确切的。使用场景:1.缓存穿透解决方案2.网络爬虫重复下载url解决方案3.HBase客户端查找列族文件数据问题解决方案。......
  • Redis 缓存与数据库数据不一致问题
    Redis缓存与数据库数据不一致问题是指在使用Redis作为缓存系统时,由于缓存和数据库之间的操作没有同步或处理不当,导致缓存中的数据与数据库中的数据不同步,产生数据不一致的情况。现象:数据库更新后,缓存未更新,导致缓存中的数据是旧的。缓存脏读,即缓存中的数据被更新,而数据库中的数据未......
  • 缓存击穿 redis
    缓存穿透1、缓存穿透是指查询一个缓存中和数据库中都不存在的数据,导致每次查询这条数据都会透过缓存,直接查库,最后返回空。解决缓存穿透的方法一般有两种,第一种是缓存空对象,第二种是使用布隆过滤器。 缓存击穿2、缓存击穿是指当缓存中某个热点数据过期了,在该热点数据重新载入......
  • Nginx 禁止页面缓存
    location^~/vue{add_headerCache-Control"no-cache,private,no-store,must-revalidate,max-stale=0,post-check=0,pre-check=0";indexindex.html;alias/home/zhuge/project/test/dist/;try_files......
  • npm 的 .npmrc 文件在哪里?缓存及全局包文件在什么位置?
    npm的配置文件,及其路径问题如何快捷修改.npmrc配置文件?.npmrc文件,就是npm的配置文件所在位置。当然,寻找这个文件的目的,多数是为了修改.npmrc文件内容。但npm提供了方便快捷的修改方式,不知道这个文件的位置,其实也是可以修改的。.npmrc配置文件在哪里?如果你还是想知道.npmrc......
  • Zabbix proxy中的数据缓存
    感谢本文作者田川,Zabbix中级认证专家。Zabbixproxy的一个特性是如果与Zabbix服务器的连接丢失时可以缓存收集的监控数据。在这篇文章中,将使用数据包捕获和数据包分析来展示它如何发生。01Zabbix设置和捕获Zabbix代理流量这是本次演示中的设置:·中心站点的一个Zabbix服务器(IPv6地......
  • 喜马拉雅 Redis 与 Pika 缓存使用军规
    作者:喜马拉雅董道光宣言:缓存不是万金油,更不是垃圾桶!!!缓存作为喜马拉雅至关重要的基础组件之一,每天承载着巨大的业务请求量。一旦缓存出现故障,对业务的影响将非常严重。因此,确保缓存服务的稳定和高效运行始终是我们的重要目标。下面是我们对喜马缓存历史故障复盘后总结的一套缓存使......
  • Apache DolphinScheduler实战(07)-缓存机制
    1缓存目的由于M/S调度过程中,会产生大量数据库读操作,如tenant,user,processDefinition等:对DB产生很大读压力使整个核心调度流程变慢考虑这部分业务数据读多写少,引入缓存模块:减少DB读压力,加快核心调度流程。2缓存设置spring:cache:#defaultenablecache,youcand......
  • net core自带的缓存机制
    .NETCore的缓存机制主要有以下几种:1.内存缓存(In-MemoryCache):这是最简单的缓存形式,它将缓存数据存储在应用程序的内存中。这种缓存方式非常快速,但是如果应用程序重启或者服务器发生故障,缓存数据将会丢失。2.分布式缓存(DistributedCache):这种缓存方式可以在多个服务器之间共享......
  • 如何解决缓存穿透、缓存击穿、缓存雪崩
    SpringBoot在缓存方面也提供了一些优秀的解决方案,帮助我们解决缓存穿透、缓存击穿、缓存雪崩等问题。一、Redis缓存Redis是一个高性能的键值对存储数据库,也是一个基于内存的数据结构存储系统,同时也支持持久化数据存储。Redis提供了丰富的数据结构,包括字符串、哈希、列表、集合、有......