Redis布隆过滤器模块安装与使用

368 阅读4分钟

写在前面

现在提到Redis,就是问如何解决缓存穿透问题,通常我们会说,使用布隆过滤器。那么布隆过滤器如何使用呢?Redis的布隆过滤器功能,有两种使用方式,一种是直接安装带有布隆过滤器版本的RedisBloom.另一种就是单独安装Redis(最低版本4.0),再添加布隆过滤器模块。

操作方式

安装Redis

下载Redis压缩包 -> 进行make编译并安装 -> 启动Redis实例

对于Redis安装,平时使用Docker安装真方便。如果单独安装,还是有点麻烦的。这里参考这篇文章进行操作。 blog.csdn.net/qq_40230026…

下载Redis压缩包

进入官网,找半天没找到下载位置,后来找到一个路径,直接可以进入,免得找半天。找到具体的版本,双击即可下载。 download.redis.io/releases/

示例图,

图片.png

进行make编译并安装

对下载好的压缩包进行解压

tar -zxvf redis-4.0.2.tar.gz

将解压后的文件进行make

cd redis-4.0.2
make

此时在src目录下就存在一个redis.server的文件

图片.png

构建Redis,生成一个bin文件,产生可执行文件

# make install PREFIX= 目标路径
make install PREFIX= /data/software/redis/redis

注意等号左右 (make install PREFIX= data/software/redis/redis) 是否有空格,执行的时候报错,调整了下就正常了。

图片.png

执行完毕后,在指定目录中会生成bin目录

图片.png

启动实例

进入源码中的utils文件,执行命令

图片.png

./install_server.sh

会出现如下信息,基本都是回车即可。

[root@iv-yd8ni22hogxjd1tyg5ha utils]# ./install_server.sh
Welcome to the redis service installer
This script will help you easily set up a running redis server

Please select the redis port for this instance: [6379] 
Selecting default: 6379
Please select the redis config file name [/etc/redis/6379.conf] 
Selected default - /etc/redis/6379.conf
Please select the redis log file name [/var/log/redis_6379.log] 
Selected default - /var/log/redis_6379.log
Please select the data directory for this instance [/var/lib/redis/6379] 
Selected default - /var/lib/redis/6379
Please select the redis executable path [/usr/local/bin/redis-server] 
Selected config:
Port           : 6379
Config file    : /etc/redis/6379.conf
Log file       : /var/log/redis_6379.log
Data dir       : /var/lib/redis/6379
Executable     : /usr/local/bin/redis-server
Cli Executable : /usr/local/bin/redis-cli
Is this ok? Then press ENTER to go on or Ctrl-C to abort.
Copied /tmp/6379.conf => /etc/init.d/redis_6379
Installing service...
Successfully added to chkconfig!
Successfully added to runlevels 345!
Starting Redis server...
Installation successful!

注意上述安装提示中,有Redis的一些配置信息,后续会使用到,摘抄如下

Selected config:
Port           : 6379
Config file    : /etc/redis/6379.conf
Log file       : /var/log/redis_6379.log
Data dir       : /var/lib/redis/6379
Executable     : /usr/local/bin/redis-server
Cli Executable : /usr/local/bin/redis-cli

新增支持布隆过滤模块

下载布隆过滤器模块 -> 进行编译 -> 加入到Redis中

参考文章,www.cnblogs.com/-hz01/p/179…

下载布隆过滤器模块

比如我下载的版本是2.2.12

图片.png

下载地址,github.com/RedisBloom/…

进行编译

我将下载的文件和Redis源文件放在一块。先解压,后make。会产生一个redisbloom.so文件。方便以后查看,我将该文件放到Redis安装指定的文件中。

图片.png

tar -zxvf RedisBloom-2.2.12
cd RedisBloom-2.2.12
make
mv redisbloom.so  /data/software/redis/redis

加入到Redis中

有两种方式将布隆过滤器模块加入到Redis中,一种是运行Redis时指定redisbloom.so位置。另外一种就是将redisbloom.so的路径写在Redis的配置文件。我采用第二种方式,因为刚安装完成的Redis还需要调整一些配置信息。

根据上述安装时记录的信息,配置文件在这里,我调整了以下几个参数

/etc/redis/6379.conf

1)让远程客户端也能访问服务器上的Redis,默认只能本地才能访问

图片.png

2)添加布隆过滤模块

# 搜索loadmodule,定位到指定位置,添加loadmodule模块的路径
loadmodule /data/software/redis/redis/redisbloom.so

图片.png

完成配置文件调整后,重新启动Redis即可。

重启redis的方法,blog.csdn.net/Clearinn/ar…

# 找Redis进程号
ps -aux|grep redis
# 杀死进程号
kill -9  XXXX
# 启动Redis
/usr/local/bin/redis-server /etc/redis/6379.conf

使用

通过Redis客户端工具RedisDesktopManager连接,可正常使用Redis布隆过滤器功能。

图片.png

遇到的问题

下载的Redis安装时,make失败

看到网友回复,因为centos7的Gcc默认版本是4,导致在编译redis6.X版本时报错。

参考资料,blog.csdn.net/weixin_4542…

# 查看gcc的版本信息
gcc -v

# 升级gcc版本
sudo yum -y install centos-release-scl

使用上述命令,升级Gcc,出现了新的错误。

错误部分描述如下

图片.png

最开始我安装的Reids版本是6.0。提示上述错误,网友遇到类似问题,提到Gcc版本不对,尝试升级Gcc遇到上述截图错误。

按照这位网友的方法,我更改阿里源,还是没有解决。 www.cnblogs.com/lxzcloud/p/…

后来换个思路,既然Redis支持布隆过滤器最低版本4.0,我就尝试更改安装的Redis版本,更改为4.0。