Redis缓存会出现的问题?
一、缓存击穿
- 1.概念:
指某一条数据失效了;缓存中没有数据,数据库中有数据
对于热点数据的访问 - 2.造成原因:
原因1:之前没有人访问过,缓存里没有
原因2:缓存中的数据刚好失效 - 3.解决方案: 分布式锁
redis
zk
mysql
二、缓存穿透
- 1.概念:
值多条数据失效了/没有,数据库中也没有 - 2.原因:
比如一个黑客故意制造我们缓存中不存在的key发送大量的请求,就会导致请求直接落到数据库上 - 3.解决方案:
null再次缓存
布隆过滤器
三、缓存雪崩
- 1.概念:
多条缓存数据同时失效了,大量请求打到数据库,导致数据库崩了 - 2.造成原因:
redis宕机
数据同时失效 - 3.规避雪崩
redis搭建高可用集群
错开数据过期时间 - 4.出现雪崩
熔断、降级