缓存击穿是指在高并发场景下,某一热点数据在缓存中失效的瞬间,大量请求直接打到了数据库,造成了瞬时流量峰值,就像“击穿”了缓存一样,直接冲击后端的数据源,可能导致数据库过载。 发生原因 大量并发请求几乎同时到达,请求的数据恰好在同一时刻不在缓存中(例如,缓存刚过期),于是所有请求都落到后端数据源上。 解决方案...
缓存雪崩是指在设置缓存时采用了相同的过期时间,导致缓存在某一时刻同时失效,导致所有的查询都落在数据库上,造成了缓存雪崩。 解决方案: 1)在缓存失效后,通过加锁或者队列来控制读数据库写缓存的线程数量。比如对某个key只允许一个线程查询数据和写缓存,其他线程等待。 2)可以通过缓存reload机制,预先去更新缓存,在...