高并发场景常见的三个缓存问题
缓存穿透
大量不存在的数据访问,缓存中没有,直接访问DB,大量的数据并发的访问DB,导致DB崩溃
解决方法
解决方法1:将空的结果也缓存到Redis
解决方法2:在Redis的前面添加一个布隆过滤网,将DB组件放到布隆过滤中,将DB中不存在的数据先过滤一遍
缓存雪崩
大量的请求发送过来的时候,Redis中存储了大量过期时间相同的key,在接收请求的时候大量的key同时过期,导致大量的请求同时直接访问DB
解决方法
解决方法1:使用uuid随机值给key设置不同的失效时间
解决方法2:采用集群的方式防止雪崩
缓存击穿
解决方法:加锁

浙公网安备 33010602011771号