写在前面
现在提到Redis,就是问如何解决缓存穿透问题,通常我们会说,使用布隆过滤器。那么布隆过滤器如何使用呢?Redis的布隆过滤器功能,有两种使用方式,一种是直接安装带有布隆过滤器版本的RedisBloom.另一种就是单独安装Redis(最低版本4.0),再添加布隆过滤器模块。
操作方式
安装Redis
下载Redis压缩包 -> 进行make编译并安装 -> 启动Redis实例
对于Redis安装,平时使用Docker安装真方便。如果单独安装,还是有点麻烦的。这里参考这篇文章进行操作。 blog.csdn.net/qq_40230026…
下载Redis压缩包
进入官网,找半天没找到下载位置,后来找到一个路径,直接可以进入,免得找半天。找到具体的版本,双击即可下载。 download.redis.io/releases/
示例图,
进行make编译并安装
对下载好的压缩包进行解压
tar -zxvf redis-4.0.2.tar.gz
将解压后的文件进行make
cd redis-4.0.2
make
此时在src目录下就存在一个redis.server的文件
构建Redis,生成一个bin文件,产生可执行文件
# make install PREFIX= 目标路径
make install PREFIX= /data/software/redis/redis
注意等号左右 (make install PREFIX= data/software/redis/redis) 是否有空格,执行的时候报错,调整了下就正常了。
执行完毕后,在指定目录中会生成bin目录
启动实例
进入源码中的utils文件,执行命令
./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
进行编译
我将下载的文件和Redis源文件放在一块。先解压,后make。会产生一个redisbloom.so文件。方便以后查看,我将该文件放到Redis安装指定的文件中。
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,默认只能本地才能访问
2)添加布隆过滤模块
# 搜索loadmodule,定位到指定位置,添加loadmodule模块的路径
loadmodule /data/software/redis/redis/redisbloom.so
完成配置文件调整后,重新启动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布隆过滤器功能。
遇到的问题
下载的Redis安装时,make失败
看到网友回复,因为centos7的Gcc默认版本是4,导致在编译redis6.X版本时报错。
参考资料,blog.csdn.net/weixin_4542…
# 查看gcc的版本信息
gcc -v
# 升级gcc版本
sudo yum -y install centos-release-scl
使用上述命令,升级Gcc,出现了新的错误。
错误部分描述如下
最开始我安装的Reids版本是6.0。提示上述错误,网友遇到类似问题,提到Gcc版本不对,尝试升级Gcc遇到上述截图错误。
按照这位网友的方法,我更改阿里源,还是没有解决。 www.cnblogs.com/lxzcloud/p/…
后来换个思路,既然Redis支持布隆过滤器最低版本4.0,我就尝试更改安装的Redis版本,更改为4.0。