首页 > 试题广场 >

请你说说缓存穿透、击穿、雪崩的区别

[问答题]
请你说说缓存穿透、击穿、雪崩的区别
1、缓存穿透是指,客户端查询到了根本不存在的数据,使得这个请求直达存储层,导致负载过大造成数据库宕机。2、缓存击穿主要是指一个非常大的热点数据缓存失效导致所有请求直达存储层,导致服务崩溃。3、缓存雪崩是指某一时刻缓存层无法继续提供服务,导致所有请求直达存储层,造成数据库宕机。
发表于 2022-08-03 17:17:41 回复(0)
1.缓存穿透:是指大量访问了缓存中没有的数据,需要向数据库发送大量请求,导致数据库宕机。解决办法:(1)使用布隆过滤器对key值进行过滤,减少恶意的访问 (2)缓存在存储层也没有没有命中的空对象。2.缓存击穿:热点数据的缓存失效,导致大量的请求直达存储层。 解决办法:(1)为热点数据不设置过期时间。(2)对数据的访问增加互斥锁 3.缓存雪崩:是指缓存宕机或者大量缓存同时失效,导致大量请求直达存储层。 解决办法:(1)在设置过期时间的时候附加一个随机时间,避免同时失效 (2)采取熔断,若应用当问的不是核心数据,则直接返回预定义的信息。(3)采用哨兵或者集群模式,部署多个Redis事例,这样即使个别节点宕机,仍然保持服务的整体性可用。
发表于 2023-02-24 16:30:30 回复(0)
1. 三种缓存失效现象: =》缓存穿透:是指大量访问了缓存中没有的数据,需要向数据库发送大量请求,导致数据库宕机。 =》 缓存击穿:热点数据的缓存失效,导致大量的请求直达存储层。 =》缓存雪崩:缓存死掉了或者大量的数据同时过期,导致所有的数据访问都到达了存储层。 2. 三种现象的解决方法: =》缓存穿透:布隆过滤器 + 缓存空对象 =》 缓存击穿:热点数据永不过期 + 数据访问锁(访问数据要排队,如果当前key过期了,剩下的线程就会阻塞等待,从而保护了存储层) =》缓存雪崩:设置随机过期时间,防止同时过期 + 采用熔断机制(雪崩的时候,返回空值或者直接返回) + 哨兵、集群(保持服务整体可用)
发表于 2023-11-07 21:35:23 回复(0)
缓存穿透指的是客户端查询到根本不存在的数据,使得这个请求直达存储层,导致负载过大数据库宕机;缓存击穿是指一个非常大的热点数据失效导致所有请求直达存储层,导致服务器崩溃;缓存雪崩是指某一时刻缓存层无法继续提高服务,导致所有请求知道存储层,造成数据库宕机。
发表于 2022-09-27 20:59:47 回复(0)