mirror of
https://github.com/doocs/advanced-java.git
synced 2025-01-29 06:40:29 +08:00
docs: add English notes for cache (#271)
This commit is contained in:
parent
167ac97729
commit
cbaf53dec0
@ -8,7 +8,7 @@
|
||||
|
||||
## 面试题剖析
|
||||
|
||||
### 缓存雪崩
|
||||
### 缓存雪崩(Cache Avalanche)
|
||||
|
||||
对于系统 A,假设每天高峰期每秒 5000 个请求,本来缓存在高峰期可以扛住每秒 4000 个请求,但是缓存机器意外发生了全盘宕机。缓存挂了,此时 1 秒 5000 个请求全部落数据库,数据库必然扛不住,它会报一下警,然后就挂了。此时,如果没有采用什么特别的方案来处理这个故障,DBA 很着急,重启数据库,但是数据库立马又被新的流量给打死了。
|
||||
|
||||
@ -36,7 +36,7 @@
|
||||
- 只要数据库不死,就是说,对用户来说,2/5 的请求都是可以被处理的。
|
||||
- 只要有 2/5 的请求可以被处理,就意味着你的系统没死,对用户来说,可能就是点击几次刷不出来页面,但是多点几次,就可以刷出来了。
|
||||
|
||||
### 缓存穿透
|
||||
### 缓存穿透(Cache Penetration)
|
||||
|
||||
对于系统 A,假设一秒 5000 个请求,结果其中 4000 个请求是黑客发出的恶意攻击。
|
||||
|
||||
@ -57,7 +57,7 @@
|
||||
|
||||
![redis-caching-avoid-penetration](./images/redis-caching-avoid-penetration.png)
|
||||
|
||||
### 缓存击穿
|
||||
### 缓存击穿(Hotspot Invalid)
|
||||
|
||||
缓存击穿,就是说某个 key 非常热点,访问非常频繁,处于集中式高并发访问的情况,当这个 key 在失效的瞬间,大量的请求就击穿了缓存,直接请求数据库,就像是在一道屏障上凿开了一个洞。
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user