---
title: Redis缓存击穿缓存穿透缓存雪崩
published: 2025-09-12
description: ''
image: ''
tags: ['Redis', '中间件','缓存击穿']
category: '中间件 > Redis'
draft: false 
lang: ''
---

# 缓存击穿
缓存击穿说的是，某个热点数据在缓存中失效，导致大量请求打到数据库。这时候由于瞬间的高并发，可能导致数据库崩溃。
## 解决方案
- 分布式锁： 在获取缓存的时候，使用分布式锁，保证只有一个请求获取到缓存。这样的话，就不会因为热点数据过期失效，而让请求都打到数据库里了。
- 热点数据永不过期

# 缓存穿透
缓存穿透说的是，某个热点数据在缓存中不存在，导致大量请求打到数据库。这时候由于瞬间的高并发，可能导致数据库崩溃。

## 解决方案
- 使用布隆过滤器，布隆过滤器对于不存在的数据是能100%判断的，所以用布隆过滤器能过滤掉不存在的请求。
- 对查询的空结果进行缓存，第二次访问直接返回空值。

# 缓存雪崩

多个缓存数据在同一时刻过期，导致大量请求同时访问数据库，导致数据库崩溃。

## 解决方案
- 采用随机时间过期策略，避免多个数据同时过期。
- 使用双缓存策略，把数据存储在两层缓存里面，减少数据库的直接请求。

