Redis缓存穿透
缓存穿透是指查询一个根本不存在的数据,故意去请求缓存中不存在的数据,缓存层和存储层都不会命中,导致所有的请求都怼到数据库上,从而数据库连接异常。
通常出于容错的考虑,如果从存储层查不到数据则不写入缓存层。
Redis缓存穿透解决方案:
1、使用互斥锁排队 2、布隆过滤器(推荐)
1、
2、布隆过滤器
布隆过滤器作用:
可以用于检索一个元素是否在一个集合中。其效率远远超过一般的算法,但有一定的误判率(很低)
其本质是一个超大bit数组和若干个hash函数,元素加入时 利用各种手段将其 映射成 每一位上的点,值设置为1.取值时判断其位上的点是否都为1 。如果是则key非常可能存在,否则可能不存在
— The end —