当前位置: 移动技术网 > IT编程>软件设计>架构 > 缓存穿透、缓存击穿、缓存雪崩概念及解决方案

缓存穿透、缓存击穿、缓存雪崩概念及解决方案

2018年10月29日  | 移动技术网IT编程  | 我要评论
缓存穿透 概念 访问一个不存在的key,缓存不起作用,请求会穿透到DB,流量大时DB会挂掉。 解决方案 1. 采用布隆过滤器,使用一个足够大的bitmap,用于存储可能访问的key,不存在的key直接被过滤; 2. 访问key未在DB查询到值,也将空值写进缓存,但可以设置较短过期时间。 缓存雪崩 概 ...

缓存穿透

概念

访问一个不存在的key,缓存不起作用,请求会穿透到db,流量大时db会挂掉。

解决方案

  1. 采用布隆过滤器,使用一个足够大的bitmap,用于存储可能访问的key,不存在的key直接被过滤;
  2. 访问key未在db查询到值,也将空值写进缓存,但可以设置较短过期时间。

缓存雪崩

概念

大量的key设置了相同的过期时间,导致在缓存在同一时刻全部失效,造成瞬时db请求量大、压力骤增,引起雪崩。

解决方案

可以给缓存设置过期时间时加上一个随机值时间,使得每个key的过期时间分布开来,不会集中在同一时刻失效。

缓存击穿

概念

一个存在的key,在缓存过期的一刻,同时有大量的请求,这些请求都会击穿到db,造成瞬时db请求量大、压力骤增。

解决方案

在访问key之前,采用setnx(set if not exists)来设置另一个短期key来锁住当前key的访问,访问结束再删除该短期key。

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网