<返回更多

redis之缓存穿透、缓存击穿和缓存雪崩

2019-09-23    
加入收藏

一、缓存穿透

1.何为缓存穿透?

缓存穿透,是指查询一个数据库一定不存在的数据。正常的使用缓存流程大致是,数据查询先进行缓存查询,如果key不存在或者key已经过期,再对数据库进行查询,并把查询到的对象,放进缓存。如果数据库查询对象为空,则不放进缓存。

2.缓存穿透解决方案

1)布隆过滤器拦截不存在的请求

2)redis缓存不存在的值

3)按照业务需要,设定规则直接进行拦截,比如用户id,要求id>0

二、缓存击穿

1.何为缓存击穿?

缓存击穿,是指一个key非常热点,在不停的扛着大并发,大并发集中对这一个点进行访问,当这个key在失效的瞬间,持续的大并发就穿破缓存,直接请求数据库,就像在一个屏障上凿开了一个洞。

2.缓存击穿解决方案

1)设置数据永远不过期

2)加分布式锁,单线程查询数据库

三、缓存雪崩

1.何为缓存雪崩?

缓存雪崩,是指在某一个时间段,缓存集中过期失效。

2.缓存雪崩解决方案

1)缓存数据的过期时间设置为随机值

2)数据设置永不过期

声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多资讯 >>>