Redis缓存穿透、击穿、雪崩

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

一、缓存穿透

描述

  指访问一个缓存和数据库中都不存在的key由于这个key在缓存中不存在则会到数据库中查询数据库中也不存在该key无法将数据添加到缓存中所以每次都会访问数据库导致数据库压力增大。

解决方法

  1. 将空key添加到缓存中。
  2. 使用布隆过滤器过滤空key。
  3. 一般对于这种访问可能由于遭到攻击引起可以对请求进行身份鉴权、数据合法行校验等。

二、缓存击穿

描述

  指大量请求访问缓存中的一个key时该key过期了导致这些请求都去直接访问数据库短时间大量的请求可能会将数据库击垮。

解决方法

  1. 添加互斥锁或分布式锁让一个线程去访问数据库将数据添加到缓存中后其他线程直接从缓存中获取。
  2. 热点数据key不过期定时更新缓存但如果更新出问题会导致缓存中的数据一直为旧数据。

三、缓存雪崩

描述

  指在系统运行过程中缓存服务宕机或大量的key值同时过期导致所有请求都直接访问数据库导致数据库压力增大。

解决方法

  1. 将key的过期时间打散避免大量key同时过期。
  2. 对缓存服务做高可用处理。
  3. 加互斥锁同一key值只允许一个线程去访问数据库其余线程等待写入后直接从缓存中获取。
阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: redis