1.原理
网络异常,图片无法展示
|
上图的key1、key2分别计算hash三次会分布到三个键为上 是对数据进行多次hash运算然后根据长度取模,分散到多个位置上: 如果分散的位置都为1则说明数据存在 如果分散的位置上有0则说明数据不存在。 复制代码
2.说明
当在布隆过滤器上当某个值是存在的时候,则这个值可能不存在;但是当某个值不存在,则这个值一定不存在 有一定的误差,但是可以接受 复制代码
布隆过滤器在匹配的速度非常快占用内存也小 有一定的误判率,比如:当声明的空间长度/数据量的长度过小的化误判率会升高的 还有hash计算的次数不同也有差别小的时候误判也是会提升的 复制代码
3.应用
例如爬虫需要去重已经爬取过的链接,怎么办? 数据库保存已经爬取过的链接,这些链接保存在那里?随着时间的推移数据量变得越来越多效率如何处理? 缓存穿透:当有些恶意的链接后台数据不不存在,这时候查询数据缓存没命中而去访问了数据库,当量大的时候后台数据库会撑不住的,这时候对于不存在的数据可以直接丢弃。存在的数据走缓存。那就是说存在的数据也会放在布隆过滤器的 复制代码
4.安装
4.1.地址
https://github.com/RedisBloom/RedisBloom wget https://codeload.github.com/RedisBloom/RedisBloom/tar.gz/refs/tags/v2.2.9 复制代码
4.2.解压
tar -xzvf RedisBloom-2.2.9.tar.gz 复制代码
4.3.编译
切换目录 make 会生成文件:redisbloom.so 复制代码
4.4.redis配置文件修改
网络异常,图片无法展示
|
4.5.启动
如果启动的时候,配置文件没生效 需要指定配置文件 redis-server /etc/redis/redis.conf 或者 redis-server --loadmodule /etc/redis/RedisBloom-2.2.9/redisbloom.so & 复制代码
4.6指令效果
网络异常,图片无法展示
|