处理:将 Redis 升级到 5.0.0版本,下载地址:https://redis.io/download/
redis 原版本:3.0.7,现在就对他做一下升级处理。
升级方式:离线升级
升级时间规划:尽可能的选择没有业务在跑的时间段进行升级,并提前通告升级时间段。
1、下载redis 源码包:
redis 下载地址 根据下载地址选择自己要安装的redis 版本的源码包。这里我下载的是 redis-5.0.0.tar.gz。
这里你可以先下载到本地,在通过rz的方式上传到服务器,也可以直接 wget 下载。
通过wget下载
#如果没安装wget则安装 wget
yum install -y wget
#下载 redis
wget https://download.redis.io/releases/redis-5.0.0.tar.gz
此处是先下载到本地(其他环境有包可以直接拷贝过来),通过rz的方式上传到服务器
#解压源码包
tar -zxvf redis-5.0.0.tar.gz
提前通知升级时间,在升级时间段:
**登录redis执行save 在杀进程之前保存数据
#停止旧版的redis
ps -ef|grep redis
kill -9 进程id
2、备份数据:
在升级前,可以根据情况来决定是否需要备份数据和配置文件。
如果持久化用的是rdb,备份.rdb文件,默认叫 dump.rdb。
如果持久化用的是aof,备份.aof文件,默认叫 appendonly.aof
配置文件是 redis.conf文件。也可以备份下,这样可以省去修改配置文件。
在启动新版的redis 时,可以将数据文件放到启动目录下。不知道启动目录,可以 redis-cli 下输入:config get dir 查看。
redis.conf 只需要替换新版的redis.conf 即可。
3、编译安装:
进入新版的redis 目录编译安装
cd redis-5.0.0
#编译安装
make && make install
先将新版的配置文件备份,以便更改或替换时出错
cp /opt/redis-5.0.0/ redis.conf /opt/redis-5.0.0/ redis.confbak
#将旧版的配置文件和备份数据文件复制到新版redis 中
cp -p /opt/redis-3.0.7/redis.conf /opt/redis-5.0.0/ redis.conf
创建redis_data目录,用于存放数据
cd /opt/redis-5.0.0/
mkdir redis_data
cp -p /opt/redis-3.0.7/redis_data/dump.rdb /opt/ redis-5.0.0/redis_data/dump.rdb
因为这里是使用旧版的redis.conf ,所以可以不用配置redis.conf 文件的参数(涉及到路径可能需要变动),如果没有使用旧版的话,可以配置以下参数:
注释 bind 127.0.01 允许外部连接
修改protected-mode 为 no 关闭保护模式
修改daemonize 为 yes 允许后台运行
port 端口,可以根据需求修改,比如默认:6379
requirepass 可以设置密码,将注释去掉
#这个也可以在redis 中设置密码:
127.0.0.1:6379> config set requirepass 123123
127.0.0.1:6379> config get requirepass
4、启动新版redis
#/opt/redis-5.0.0/src/redis-server /opt/redis-5.0.0/redis.conf &
#查看redis 是否启动
ps -ef | grep redis
#查看redis 版本
#可以直接看
redis-cli -v
#########至此升级完成!!!
升级完成,可以测试一下有没有问题,没问题便可将原来版本的Redis清理了。
清除原版Redis的目录即可
rm -rf /opt/redis-3.0.7