缓存穿透
某个key缓存没有,数据库也没有。一般这种情况发生了用户恶意请求或者攻击。造成一直不停查库
解决方案
最顶层拦截,不合理的id直接打回去或者布隆过滤器
db如果差不多,设置个null进Redis,这样下次就不会打到db,但是要注意合理的过期时间。
缓存雪崩
大批量不同的key同一时间到期,造成缓存失效,请求压到数据库。
解决方案
没有很好的办法,设置key的时候注意错开过期时间,有些热点数据甚至可以设置不过期
缓存击穿
某个key缓存过期,但是数据库有。正好这个点请求并发超高,还没来的及写缓存都压到了数据库上。
解决方案
加锁!第一个请求来时,如果发现为空,加锁住让后面的请求等待一下,参考多线程单例模式
分布式缓存的效率问题
分布式缓存需要经过网络传输,既然有网络,必然会有性能损耗,
标签:头疼,缓存,请求,过期,数据库,redis,加锁,key From: https://www.cnblogs.com/puzi0315/p/17068389.html