🏠 首页 / architechture / 缓存设计
缓存设计 #
缓存穿透 #
缓存穿透是指查询一个在缓存层不存在的数据,请求会打到存储层。
解决办法:
- 缓存控对象;
- 布隆过滤器;
缓存击穿 #
大批量缓存在同一时间失效,导致大量请求打到存储层造成数据存储服务压力过大。
解决办法:
为缓存设置不同的过期时间。
缓存雪崩 #
缓存层服务失效,请求全部打到存储层。
解决办法:
- 缓存层高可用;
- 存储层采用限流、熔断或降级等隔离组件;
- 混沌工程,预演缓存层不可用,存储层处理能力。
热点缓存 #
热点数据,还未建立缓存或者缓存过期,同一时间巨大请求量并发打过来。
解决办法:
- 使用互斥锁,只允许一个线程建立缓存。