Redis布隆过滤器插件安装及使用

1,097 阅读2分钟

「这是我参与11月更文挑战的第3天,活动详情查看:2021最后一次更文挑战

1.原理

image.png

上图的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配置文件修改

image.png

4.5.启动

如果启动的时候,配置文件没生效 需要指定配置文件
redis-server /etc/redis/redis.conf

或者
redis-server --loadmodule /etc/redis/RedisBloom-2.2.9/redisbloom.so &

4.6指令效果

image.png