Redis安装布隆(Bloom Filter)过滤器

571次阅读
没有评论

redis 扩展模块下载列表:https://redis.io/resources/modules/

一、环境要求

  • 最低 4.x 版本,可以通过如下命令查看版本:
[root@localhost /]# redis-cli
127.0.0.1:6379> info
# Server
redis_version:7.0.5
redis_git_sha1:00000000
redis_git_dirty:0

二、下载代码并编译

插件下载地址https://github.com/RedisBloom/RedisBloom/tags

Redis 安装布隆 (Bloom Filter) 过滤器

这里看到 RedisBloom 最新版已更新到 v2.4.5 版本,由于我虚拟机环境编译 v2.4.5 版本编译失败

[root@localhost RedisBloom-2.4.5]# make
Makefile:4: deps/readies/mk/main: 没有那个文件或目录
Makefile:150: /defs: 没有那个文件或目录
Makefile:177: /rules: 没有那个文件或目录
make: *** 没有规则可以创建目标“/rules”。停止。

故示例以 v2.2.18 版本为例。

v2.2.18 版下载链接:https://github.com/RedisBloom/RedisBloom/archive/refs/tags/v2.2.18.tar.gz

下载文件

wget  https://github.com/RedisBloom/RedisBloom/archive/refs/tags/v2.2.18.tar.gz

解压文件

tar -zxvf v2.2.18.tar.gz

进入解压目录并编译文件

cd RedisBloom-2.2.18/
make

编译成功后看到 redisbloom.so 文件即可

Redis 安装布隆 (Bloom Filter) 过滤器

三、安装扩展模块到 Redis

Redis 配置文件修改

在 redis.conf 配置文件中加入如 RedisBloom 的 redisbloom.so 文件的地址
如果是集群则每个配置文件中都需要加入 redisbloom.so 文件的地址
添加完成后需要重启 redis

loadmodule /usr/local/soft/RedisBloom-2.2.18/redisbloom.so

redis.conf 配置文件中预置了 loadmodule 的配置项,我们可以直接在这里修改,后续修改会更加方便。

宝塔面板的 redis 配置文件路径地址 /www/server/redis/redis.conf

Redis 安装布隆 (Bloom Filter) 过滤器

保存退出后一定要记得重启 Redis!

四、基本命令

布隆过滤器操作相关的基本命令有 4 个:

bf.add key …options…   一次添加一个元素。

127.0.0.1:6379> bf.add bloom1 1
1

bf.madd key …options…  一次添加多个元素。

127.0.0.1:6379> bf.madd bloom1 1 2 3
1

bf.exists key …options…    查询元素是否存在。

127.0.0.1:6379> bf.exists bloom1 1
1

bf.mexists key …options…   一次查询多个元素是否存在。

127.0.0.1:6379> bf.mexists bloom1 2 3
1

可以通过 bf.reserve 命令来调整布隆过滤器的准确率:

127.0.0.1:6379> bf.reserve bloom1 0.01 100
1

第一个参数 bloom1 是布隆过滤器的名字(自定义);
第二个参数 0.01 是 error_rate,允许布隆过滤器的错误率,这个值越低过滤器的位数组的大小越大,占用空间也就越大。
第三个参数 100 是 initial_size,布隆过滤器可以储存的元素个数,当实际存储的元素个数超过这个值之后,过滤器的准确率会下降。

注意必须在 add 之前使用 bf.reserve 指令显式创建,如果对应的 key 已经存在,bf.reserve 会报错。同时设置的错误率越低,需要的空间越大。如果不使用 bf.reserve,默认的 error_rate 是 0.01,默认的 initial_size 是 100。

参考链接:https://blog.csdn.net/qq_41125219/article/details/119972808

正文完
有偿技术支持加微信
post-qrcode
 
评论(没有评论)
验证码