比如我们的redis、他就是缓存中比较常见的一种,他的并发读写能力能达到10w/s左右的速度,这个速度是相当不错的,相对于传统的数据存储来说,比如数据库,快了不知道多少倍,传统的数据库(mysql)操作的都是磁盘,而redis操作的是内存(ram),所以他们的速度肯定是没法比较的,由于传统数据库的读写较慢,所以并发较高的时...
缓存击穿是指在高并发场景下,某一热点数据在缓存中失效的瞬间,大量请求直接打到了数据库,造成了瞬时流量峰值,就像“击穿”了缓存一样,直接冲击后端的数据源,可能导致数据库过载。 发生原因 大量并发请求几乎同时到达,请求的数据恰好在同一时刻不在缓存中(例如,缓存刚过期),于是所有请求都落到后端数据源上。 解决方案...
缓存雪崩是指在设置缓存时采用了相同的过期时间,导致缓存在某一时刻同时失效,导致所有的查询都落在数据库上,造成了缓存雪崩。 解决方案: 1)在缓存失效后,通过加锁或者队列来控制读数据库写缓存的线程数量。比如对某个key只允许一个线程查询数据和写缓存,其他线程等待。 2)可以通过缓存reload机制,预先去更新缓存,在...