一、前言
最近单位组织了全面的安全扫描检查,发现开发团队使用的Redis版本过低,需要进行版本升级。但在升级过程中发现,各开发小组安装Redis的方式五花八门,缺乏统一规范,导致无法按统一标准进行升级,给整体升级工作带来了较大的额外负担。为此,整理一套规范的Redis安装安装规范和安装过程说明,以减少后续维护中不必要的工作量。
二、安装步骤
在正式安装前,先规划一下安装用户和安全路径的规范。
2.1、安装用户规范
确定安装用户时,如无特殊要求,建议使用应用用户进行安装,避免直接使用 root 用户。主要考虑如下:
1、减少后续升级时因申请 root 权限带来的流程成本。
2、应用用户独立管理,操作更简便,权限边界更清晰。
安装用户总结如下:
1、权限最小化、降低安全风险。
2、简化流程、规避企业合规成本。
3、便于标准化管理。
2.2、安装路径规范
如果目录规划得不太友好,还请谅解。大家可以根据自己的实际情况进行规划管理,最终要求达到好管理、易管理的目的即可。
安装路径:/redis
单独挂载一个文件系统(/redis),万一以后空间不足,方便扩容,减少空间冗余的风险。
版本文件存放路径:/redis/version
存放redis版本文件,方便后续不同版本文件的使用,做好定期清理历史版本即可。
数据目录:/redis/redis-{version}/data/{port}
把数据单独存放到一个目录对应的redis端口下,也可以不创建对应的端口目录,可以根据项目的实际情况进行创建。
配置文件:/redis/redis-{version}/config
所有配置文件放到该目录下,方便以后统一管理。
日志文件:/redis/redis-{version}/logs
日志文件放在该目录下,方便以后查看管理。
PID目录:/redis/redis-{version}/run
PID文件放在该目录下,统一管理。
注:以上路径中的redis-{version}指的是实际安装的redis版本目录(如:redis-7.4.8),为何用该目录,下方安装配置时会有解释。
环境变量
统一配置好环境变量(REDIS_HOME)的配置,减少使用redis相关命令的路径依赖,建议配置在用户的家目录下,如:/home/tom。
2.3、安装redis
2.3.1、redis软件下载
本次安装使用的版本为7.4.8版本,可以根据工作实际要求选择对应的版本安装即可。redis下载地址如下:
https://download.redis.io/releases/
2.3.2、解压新版本redis
上传对应的版本文件到/redis/version下,并进行解压。
[tom@CentOS7 version]$ tar -xf redis-7.4.8.tar.gz 2.3.3、停止老版本的redis
[tom@CentOS7 redis]$ cd ./redis-7.2.13/bin停止redis的方法有很多,如果自己书写了redis的停止脚本,可以使用自己的脚本进行停止,也可以使用kill进程的方式进行停止,或使用redis-cli命令进行停止。
[tom@CentOS7 bin]$ redis-cli -h 127.0.0.1 -p 6379 shutdown如果设置了密码,使用下方命令进行停止。
[tom@CentOS7 bin]$ redis-cli -h 127.0.0.1 -p 6379 -a 'your_password' shutdown注:127.0.0.1可以根据redis实际绑定的IP填写即可。
停止完成之后,要再检查一下redis服务是否已完全停止掉。
[tom@CentOS7 bin]$ ps -ef|grep redis或使用下方命令进行检查。
[tom@CentOS7 bin]$ netstat -tlnp|grep 6379注:如果redis的端口进行了更改,换成自己实际的redis端口号即可。
2.3.4、安装新版本redis
进入到新版本redis解压后的目录。
[tom@CentOS7 version]$ cd redis-7.4.8进行编译安装,此时需要指定安装目录。
[tom@CentOS7 redis-7.4.8]$ make PREFIX=/redis/redis-7.4.8 install执行以上命令之后,静静等待即可。一般不会报出什么错误,如果报错,有可能是gcc编译器没有安装,或其它编译器没有安装造成,根据报错误信息安装对应的编译器即可。
安装完成之后,会在对应的安装目录下生成一个bin目录,该目录下存放的是redis的可执行命令。如下所示:
[tom@CentOS7 redis-7.4.8]$ ls -lrt bin总用量 30112-rwxr-xr-x 1 tom tom 16193664 3月 28 10:36 redis-server-rwxr-xr-x 1 tom tom 6831072 3月 28 10:36 redis-benchmark-rwxr-xr-x 1 tom tom 7804304 3月 28 10:36 redis-clilrwxrwxrwx 1 tom tom 12 3月 28 10:36 redis-check-rdb -> redis-serverlrwxrwxrwx 1 tom tom 12 3月 28 10:36 redis-check-aof -> redis-serverlrwxrwxrwx 1 tom tom 12 3月 28 10:36 redis-sentinel -> redis-server
2.3.5、创建对应的路径
[tom@CentOS7 redis]$ cd redis-7.4.8[tom@CentOS7 redis-7.4.8]$ mkdir -pv ./data/6379 ./config ./logs ./run
2.3.6、复制配置文件
[tom@CentOS7 redis-7.4.8]$ cd /redis/redis-7.4.8/config[tom@CentOS7 config]$ cp /redis/version/redis-7.4.8/redis.conf ./
2.3.7、配置对应的信息
复制完redis.conf配置文件后,可以跟据自己实际工作的情况,对访问密码、日志、数据、pid文件存放位置进行配置。
[tom@CentOS7 redis]$ cd ./redis-7.4.8/config[tom@CentOS7 config]$ vi redis.conf
找到对应的配置项进行配置即可,本次只配置了访问密码、日志、数据、pid文件存放位置。
1、bind 127.0.0.1 -::1
这一行给注释掉,这里的bind指的是只有指定的网段才能远程访问这个 Redis,注释掉后,就没有这个限制了。
2、protected-mode no
redis系统的安全模块,默认是开启状态,也就是yes,安全模式下,redis只允许本地连接。yes设置为no就是关闭安全模式,redis运许所有ip地址链接。
3、 requirepass
设置redis访问密码,在后面添加自己的密码即可。写法:requirepass your_password
4、logfile
设置日文件和日志存放位置。写法:logfile "/redis/redis-7.4.8/logs/redis-server.log"。
注:这里指定的日志存放位置,是提前规划好的,没有该目录,要先创建好。
5、loglevel
日志级别,默认是notice级别,可以根据自己的实际需求更改日志级别。
redis的日志级别分为:警告(Warning)、错误(Error)、调试(Debug)、冗长(verbose)、通知(notice)。
6、pidfile
设置pid文件和该文件存放位置。写法:pidfile /redis/redis-7.4.8/run/redis_6379.pid
注:这里指定的pid存放位置,是提前规划好的,没有该目录,要先创建好。
7、dbfilename
设置数据文件,默认文件名为:dump.rdb。
如果想更改其存放位置,需要找到“dir”这个参数,设置路径即可。写法:dir /redis/redis-7.4.8/data/6379
注:这里指定的dump.rdb存放位置,是提前规划好的,没有该目录,要先创建好。
2.3.8、创建redis软链接
[tom@CentOS7 redis]$ ln -sv redis-7.4.8 ./redis这就是2.2小节中所说路径redis-{version}的含义,主要目的是为了方便以后版本升级使用,如果升级后的版本有问题,直接停止升级后的版本,并删除软链接。再创建旧版本软链接,创建好之后,启动旧版本即可。
也可以直接进入到redis-{version}目录下停止老版本,启动新版本。
以上创建软链接的主要目的,就是为了能快速回切到升级前的版本,避免因升级失败无法快速回切到老版本,造成业务长期中断的情况发生。
2.3.9、启动新版本redis
[tom@CentOS7 redis]$ cd ./redis-7.4.8/bin[tom@CentOS7 bin]$ ./redis-server /redis/redis/config/redis.conf
如果没有报错,说明启动成功了,如果报错了,查看logs路径的redis-server.log日志文件排查错误即可。
注:redis-server.log文件是可以自定义的,查看时根据自己自定义的日志文件进行查看。
启动完成之后,可以使用ps -ef|grep redis检查进程,或使用netstat -tnlp|grep 6379检查端口是否正常工作。如下所示:
[root@CentOS7 ~]# ps -ef|grep redistom 11591 5446 1 11:30 pts/0 00:00:00 ./redis-server *:6379[root@CentOS7 ~]# netstat -tnlp|grep 6379tcp 0 0 0.0.0.0:6379 0.0.0.0:* LISTEN 11776/./redis-serve
到此为止redis的安装规范和安装过程已正式完成。如果有理解不到位的,还请谅解。