1、击穿
1.1描述
把redis当缓存使用的时候,key本身存在且key会过期(过期时间/key淘汰策略),在可以过期的一刹那,刚好有大量的请求并发的,访问就会达到数据库。这种现象叫做击穿。
1.2解决方案
只能依赖锁。
1、穿透
1.1描述
把redis当缓存使用的时候,大量的查询不存在key,这个时候大量的请求会到达数据库。这种现象叫做穿透。
1.2解决方案
布隆过滤器,缺点:不能删除。
1、雪崩
1.1描述
把redis当缓存使用的时候,大量的key同时失效间接的造成大量的请求访问到数据库。这种现象叫做雪崩。
1.2解决方案
- 特定时刻这些Key必须失效,要保证数据的强一致性。
只能加锁,把并发访问换成串行访问,第一个请求把数据都加载到redis内存中,后续的请求都访问的新的缓存数据。 - 过期时间随机
允许请求的数据不一致的情况。