2017网站趋势,训做网站的心得体会范文,游戏网站建设杭州,郑州网站建设网站建设一、缓存穿透 一般的缓存系统#xff0c;都是按照key去缓存查询#xff0c;如果不存在对应的value#xff0c;就应该去后端系统查找#xff08;比如DB#xff09;。一些恶意的请求会故意查询不存在的key,请求量很大#xff0c;就会对后端系统造成很大的压力。这就叫做缓存…一、缓存穿透 一般的缓存系统都是按照key去缓存查询如果不存在对应的value就应该去后端系统查找比如DB。一些恶意的请求会故意查询不存在的key,请求量很大就会对后端系统造成很大的压力。这就叫做缓存穿透。
【如何避免】 对查询结果为空的情况也进行缓存缓存时间设置短一点。 对不存在的key进行过滤。可以把所有的可能存在的key放到一个大的Bitmap中查询时通过该bitmap过滤。
二、缓存雪崩 大量的key设置了相同的过期时间导致在缓存在同一时刻全部失效造成瞬时DB请求量大、压力骤增引起雪崩。
【如何避免】
将系统中key的缓存失效时间均匀地错开防止统一时间点有大量的key对应的缓存失效。比如我们可以在原有的失效时间基础上增加一个随机值。
三、缓存击穿 缓存击穿是指一个key非常热点在不停的扛着大并发大并发集中对这一个点进行访问当这个key在失效的瞬间持续的大并发就穿破缓存直接请求数据库就像在一个屏障上凿开了一个洞。
【如何避免】
让缓存永不过期。
转发自Redis缓存穿透、缓存雪崩和缓存击穿-CSDN博客