缓存中的击穿和缓存中雪崩以及解决方案

守給你的承諾、 提交于 2019-12-02 12:52:27

什么是缓存击穿问题

一些用户在双十一的时候恶意请求一些缓存中不存在的数据,由于一般的逻辑都是查询缓存不存在就切换查数据库,而数据库也不存在,就会抛出大量异常,引起数据库宕机。

解决办法:

①使用互斥锁排队,什么意思?查Redis时为空的时候就加锁,查到数据后再释放锁,其他线程查是空就要再外面 等,这种做法会让吞吐量降低

②布隆过滤器,什么意思?相当于hashset,快速判断key是否在容器中,如果没有直接返回,这样就不用去查数据库了。

什么是缓存雪崩

击穿是恶意行为,那么雪崩就是过期问题。一个时间段,大量的键过期而导致查不到数据。然后都去访问数据库导 致连接异常。

解决办法:

1.互斥锁 2建议备份缓存 3.修改键过期时间

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!