Centos7安装升级最新版Redis7.0.10 避坑攻略

Centos7安装升级最新版Redis7.0.10 闭坑攻略

  • 1、前言
  • 2、升级GCC
  • 3、下载编译Redis
  • 4、配置Redis
  • 5、启动Redis
  • 6、总结

1、前言

今天帮朋友处理了一个服务器的漏洞修复,过程遇到了一些坑,特记录分享给大家,朋友原服务器默认yum源安装的gcc 是4.8.5 ,默认安装redis是 3.2.12,今天被机构检测发现了一些安全问题(下图),其实这些问题在redis后续版本中均已修复,最终决定直接升级最新版redis,即Redis7.0.10
Centos7安装升级最新版Redis7.0.10 避坑攻略_第1张图片

2、升级GCC

升级新版redis需要更高级的gcc支持,这里我们就选择升级gcc9

#更新源
yum update
#安装scl源
yum install -y centos-release-scl
#安装gcc工具链
yum install -y devtoolset-9-toolchain
#临时覆盖旧版本gcc引用,针对本次会话有效
scl enable devtoolset-9 bash
#为了避免需要再次激活devtoolset-9使其长期有效
echo "source/opt/rh/devtoolset-9/enable">>/etc/profile
#查看gcc版本
gcc -v

出现gcc9版本号则升级成功
Centos7安装升级最新版Redis7.0.10 避坑攻略_第2张图片

3、下载编译Redis

如果已经使用yum安装了低版本redis的,可以先删除redis

yum remove redis

登录Redis官网下载页 https://redis.io/download/#redis-downloads 下拉找到最新稳定版的固定连接
Centos7安装升级最新版Redis7.0.10 避坑攻略_第3张图片
这里顺便附上官方各安装类型文档 https://redis.io/docs/getting-started/ 方便大家查阅

#创建下载包存放目录(自行存放自己想要的目录)
mkdir -p /usr/tools/redis
#切换进入目录
cd /usr/tools/redis/
#使用wget下载压缩包
wget https://download.redis.io/redis-stable.tar.gz
#解压到 /usr/local/目录,解压出来的文件夹为 redis-stable
tar -xzf redis-stable.tar.gz -C /usr/local/
#切换进入目录
cd /usr/local/redis-stable
#编译
make install

按照官方说明 make命令编译 Redis 源码,会在 redis-stable/src 目录下生成 redis-server 和 redis-cli 可执行文件,如果需要安装到/usr/local/bin则运行make install(实际上该命令即会在src生成同时也在/usr/local/bin生成)

4、配置Redis

按照官方文档分别构建Redis配置文件目录和数据目录
Centos7安装升级最新版Redis7.0.10 避坑攻略_第4张图片
构建目录如下

mkdir /etc/redis
mkdir /var/redis

配置开机启动脚本redis_6379

#切换目录
cd /usr/local/redis-stable/
cp utils/redis_init_script /etc/init.d/redis_6379
#复制配置文件至/etc/redis/
cp redis.conf /etc/redis/6379.conf
#在/var/redis中创建一个目录,作为Redis实例的数据和工作目录
mkdir /var/redis/6379

修改6379.conf配置文件

vim /etc/redis/6379.conf

由于redis配置文件内容比较多,可以在非编辑模式下输入 ngg 跳转到第n行(n代表行号),例如跳转到第100行就 100gg

  • 修改绑定:第87行 (87gg)
# 原 bind 127.0.0.1 -::1 修改为
bind 0.0.0.0
#很多人会误解这个bind是配置允许外部访问的IP地址
#其实不然0.0.0.0 在服务器的环境中,指的就是服务器上所有的ipv4地址
#如果机器上有2个ip 192.168.1.18 和 100.1.2.25
#redis在配置中,如果配置监听在 0.0.0.0 这个地址上,这2个ip地址都是能够连接到这个redis服务的包括127.0.0.1
  • 开启守护进程:第309行 (309gg)
daemonize yes
  • 设置日志目录:第354行 (354gg)
logfile /var/log/redis_6379.log
  • 修改数据目录:第504行 (504gg)
dir /var/redis/6379
  • 修改密码:第1034行 (1034gg)
#默认无密码,设置密码关闭redis的时候会报错见下文讲解
requirepass 你的密码

设置开机启动
按照官方的文档操作,发现在Centos系统下会报错,其它Linux可以采用,如Ubuntu

sudo update-rc.d redis_6379 defaults

Centos7安装升级最新版Redis7.0.10 避坑攻略_第5张图片

Centos采用这个方法

#rc.local 文件里写入执行脚本的指令
echo "sudo /etc/init.d/redis_6379 start &" >> /etc/rc.local
#设置权限
chmod +x /etc/rc.d/rc.local

5、启动Redis

#启动
sudo /etc/init.d/redis_6379 start
#关闭
sudo /etc/init.d/redis_6379 stop

在上述redis配置中博主提到了如果设置了密码后stop会报错出现:

(error) NOAUTH Authentication required.
Waiting for Redis to shutdown
Waiting for Redis to shutdown
Waiting for Redis to shutdown

另外还有注意的:当使用杀进程的时候强制关闭redis 如:使用 kill -9 pid 的方式再次启动会报pid文件存在的错误,使用 rm -rf 命令强制删除redis_6379.pid

rm -rf /var/run/redis_6379.pid

如果你设置了密码可以修改启动脚本文件进行解决
Centos7安装升级最新版Redis7.0.10 避坑攻略_第6张图片
第38行

vim /etc/init.d/redis_6379
#修改为
$CLIEXEC -p $REDISPORT -a 你的密码 shutdown

6、总结

以上就是升级GCC + 最新稳定版Redis7.0.10的全部记录,分享出来也希望能够帮助到大家~ 如果你觉得有用请点点赞、加加关注,谢谢!

你可能感兴趣的:(安装配置,redis,linux,centos,redis升级,gcc升级)