什么是缓存击穿问题
一些用户在双十一的时候恶意请求一些缓存中不存在的数据,由于一般的逻辑都是查询缓存不存在就切换查数据库,而数据库也不存在,就会抛出大量异常,引起数据库宕机。
解决办法:
①使用互斥锁排队,什么意思?查Redis时为空的时候就加锁,查到数据后再释放锁,其他线程查是空就要再外面 等,这种做法会让吞吐量降低
②布隆过滤器,什么意思?相当于hashset,快速判断key是否在容器中,如果没有直接返回,这样就不用去查数据库了。
什么是缓存雪崩
击穿是恶意行为,那么雪崩就是过期问题。一个时间段,大量的键过期而导致查不到数据。然后都去访问数据库导 致连接异常。
解决办法:
1.互斥锁 2建议备份缓存 3.修改键过期时间
来源:https://blog.csdn.net/weixin_44787000/article/details/102761319