什么是缓存穿透、缓存击穿、缓存雪崩呢?

对于使用分布式缓存实现大数据的存储,可能会遇到缓存穿透、 缓存击穿、 缓存雪崩等问题,这些是什么呢,该如何解决呢

缓存穿透

缓存穿透是指大量查询没有命中缓存, 直接去到数据库中查询, 如果查询量比较大, 会导致数据库的查询流量大, 对数据库造成压力。
解决
1、缓存空值
将第一次查询的空值缓存起来, 同时设置一个比较短的过期时间
2、使用布隆过滤算法(BloomFilter)
用于检查一个元素是否存在, 返回结果有两种: 可能存在或一定不存在

缓存击穿

缓存击穿是指在高并发情况下, 同时查询一个key时, key值由于某种原因突然失效(设置过期时间或缓存服务宕机) , 就会导致同一时间, 这些请求都去查询数据库了
解决
使用排斥锁来实现有序地请求数据库, 减少数据库的并发压力。

缓存雪崩

缓存雪崩一般是指发生大规模的缓存失效情况, 例如, 缓存的过期时间同一时间过期了, 缓存服务宕机了
解决
1、采用分散过期时间来解决
2、采用分布式集群来实现缓存服务

你可能感兴趣的:(项目)