redis之二十一 -- 布隆过滤器安装与使用及原理分析

本文介绍了如何在Redis中启用布隆过滤器,通过编译或Docker方式,并展示了如何使用bf.add、bf.exists等命令。布隆过滤器是一种空间效率极高的概率型数据结构,用于判断一个元素是否可能在一个集合中。虽然可能会有误判,但不会漏判。文中还给出了Python实现布隆过滤器的代码示例,以及其在垃圾邮件过滤、URL去重等场景的应用。

我们前面有讲到过 HyperLogLog 可以用来做基数统计,但它没提供判断一个值是否存在的查询方法,那我们如何才能查询一个值是否存在于海量数据之中呢?

如果使用传统的方式,例如 SQL 中的传统查询,因为数据量太多,查询效率又低有占用系统的资源,因此我们需要一个优秀的算法和功能来实现这个需求,这是我们今天要讲的——布隆过滤器。

开启布隆过滤器

在 Redis 中不能直接使用布隆过滤器,但我们可以通过 Redis 4.0 版本之后提供的 modules(扩展模块)的方式引入,本文提供两种方式的开启方式。

方式一:编译方式

1. 下载并安装布隆过滤器

git clone https://github.com/RedisLabsModules/redisbloom.git

cd redisbloom

make # 编译redisbloom

编译正常执行完,会在该目录生成一个 redisbloom.so 文件。

2.修改redis配置文件,使之加载该布隆过滤器,将上述编译后的redisbloom.so添加到配置文件

loadmodule /usr/local/RedisBloom-2.2.9/redisbloom.so

3.启动redis

redis-server   redis.conf 

方式二:Docker 方式

docker pull redislabs/rebloom  # 拉取镜像
docker run -p6379:6379 redislabs/rebloom  # 运行容器

启动验证

服务启动之后,我们需要判断布隆过滤器是否正常开启,此时我们只需使用 redis-cli 连接到服务端,输入 bf.add 看有没有命令提示,就可以判断是否正常启动了,如下图所示:

image.png

如果有命令提示则表名 Redis 服务器已经开启了布隆过滤器。(如果没有提示,可以使用命令测试一下,我的没有提示,但是也可以正常使用)

布隆过滤器的使用

布隆过滤器的命令不是很多,主要包含以下几个:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值