布隆过滤器可用于 预防 缓存穿透 问题。
场景: 大量请求同时访问一个热点 key ,而redis缓存中此时该key 却失效了,导致大量访问直接 操作数据库而 崩溃。
解决办法1:redisson 加锁, 限制访问数据库请求 redisson.tryLock(等待时间,失效时间,时间单位), redisson.unLock
解决办法2: 使用布隆过滤器,在访问前 使用 布隆过滤器 判断 该key存不存在redis,若不存在就直接没必要访问了。
布隆过滤器使用方法:
//初始化 预计统计元素数量为 100000 , 期望误差率为 0.01
RBloomFilter