布隆过滤器(BloomFilter)是由只存0或1的位数组和多个hash算法, 进行判断数据一定不存在或者可能存在的算法....如果是分布式场景下,可以使用Redis位图替换掉LockFreeBitArray类,即可实现分布式位数组部分逻辑; 也可以在Redis服务端安装RedisBloom插件引用算法;
算法优点
虽然该算法中存在误差...应用场景
利用布隆过滤器减少磁盘 IO 或者网络请求, 一个值必定不存在的话, 可以不用进行后续逻辑处理, 即使是误判的情况下, 继续后续逻辑, 也会大大降低系统压力.
1....缓存穿透
当key对应的数据在数据源并不存在, 每次针对此key的请求从缓存获取不到, 请求都会到数据源, 从而可能压垮数据源. 这时就可以使用布隆过滤器, 避免缓存穿透.
2....爬虫网址去重
记录每个爬过的网址, 没有爬过的网址一定会被布隆过滤器过滤出来. 可能存在的网址再去数据源查询, 也会降低数据源压力.
3.