我们在使用redis缓存时候常用方案是先查redis,如果redis有返回,没有则查数据库,数据库查出来后放入redis。
1.缓存雪崩
缓存雪崩是指缓存中数据在同一时间大量失效,导致查询全部落入数据库。
解决方案:
数据的过期时间随机设置,防止同时过期
设置热点数据永远不过期。
2.缓存击穿
缓存击穿是指某一条热点数据失效,导致此时大批量查询这条数据的请求落到数据库。
解决方案:
加锁,只有第一个请求查询数据库,然后放入redis,后续的都查询数据库。
设置热点数据永远不过期。
3.缓存穿透
缓存穿透在恶意攻击中比较常见,客户端一直查询不存在的数据。
解决方案:布隆过滤器。