使用缓存时,分布式环境下可能出现很多问题,下面我来说典型的三个
1.穿透
2.雪崩
3.击穿
4.总结
缓存穿透:查询一个数据库与缓存都永不存在的数据,导致每次都要查db
解决方法=》从db查出null结果也缓存,并加上短暂的过期时间
缓存雪崩:大面积缓存同时失效
解决方法=》缓存加过期时间时加随机值,别都加一样的,比如1-5分钟随机
缓存击穿:某一个缓存key,单点失效后,导致数据库被高并发请求同时访问
解决方法=》加锁,第一个请求进来时就加锁,后面的请求自然从缓存中能查到了