Skip to content

Commit a1b5907

Browse files
committed
Redis缓存穿透和雪崩
1 parent 3e94847 commit a1b5907

2 files changed

Lines changed: 22 additions & 0 deletions

File tree

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
> 感觉这个被问烂了
2+
3+
面试官:聊聊什么是缓存穿透和雪崩
4+
5+
我:ok
6+
7+
**缓存穿透**
8+
9+
一般是黑客故意去请求缓存中不存在的数据,导致所有的请求都落到数据库上,造成数据库短时间内承受大量请求而崩掉。
10+
11+
1. 在接口做校验
12+
2. 存null值(缓存击穿加锁)
13+
3. 布隆过滤器拦截: 将所有可能的查询key先映射到布隆过滤器中,查询时先判断key是否存在布隆过滤器中,存在才继续向下执行,如果不存在,则直接返回。布隆过滤器将值进行多次哈希bit存储,布隆过滤器说某个元素在,可能会被误判。布隆过滤器说某个元素不在,那么一定不在。
14+
15+
**缓存雪崩:**
16+
17+
缓存同一时间大面积的失效,所以,后面的请求都会落到数据库上,造成数据库短时间内承受大量请求而崩掉。
18+
19+
1. 使用 Redis 高可用架构:使用 Redis 集群来保证 Redis 服务不会挂掉
20+
2. 缓存时间不一致,给缓存的失效时间,加上一个随机值,避免集体失效
21+
3. 限流降级策略:有一定的备案,比如个性推荐服务不可用了,换成热点数据推荐服务

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,7 @@
8282
- [Redis数据结构](/Interview/sad/Redis数据结构.md)
8383
- [Redis持久化](/Interview/sad/Redis持久化.md)
8484
- [Redis内存淘汰机制](/Interview/sad/Redis内存淘汰机制.md)
85+
- [Redis缓存穿透和雪崩](/Interview/sad/Redis缓存穿透和雪崩.md)
8586

8687
## 刷题系列
8788
- [推荐:CS-Notes](https://cyc2018.github.io/CS-Notes/#/?id=✏️-算法)

0 commit comments

Comments
 (0)