原版本是6.2.7
升级至7.0.11
官网下包
tar xzf redis-x.x.x.taz.gz
# 解压压缩包
ls
# 查看解压后的目录 redis-x.x.x
cd redis-x.x.x
# 进入解压后的 redis-x.x.x 目录
make
# 进行编译,此处时间可能会有点久
redis备份:
在升级前,可以根据情况来决定是否需要备份数据和配置文件。
如果持久化用的是rdb,备份.rdb文件,默认叫 dump.rdb。
如果持久化用的是aof,备份.aof文件,默认叫 appendonly.aof
配置文件是 redis.conf文件。也可以备份下,这样可以省去修改配置文件。
在启动新版的redis 时,可以将数据文件放到启动目录下。不知道启动目录,可以 redis-cli 下输入:config get dir 查看。
redis.conf 只需要替换新版的redis.conf 即可。
#停止旧版的redis
备份直接操作命令bgsave 即可,如下:
config get dir 查看备份文件存放路径
ps -ef|grep redis
或者 kill -9 进程id
修改配置文件
修改集群每个redis配置文件。(主要是端口、ip、pid文件,三台机器相同操作),修改如下:
bind 192.168.116.172 #每个实例的配置文件修改为对应节点的ip地址
port 7000 #监听端口,运行多个实例时,需要指定规划的每个实例不同的端口号
daemonize yes #redis后台运行
pidfile /var/run/redis_7000.pid #pid文件,运行多个实例时,需要指定不同的pid文件
logfile /var/log/redis_7000.log #日志文件位置,运行多实例时,需要将文件修改的不同。
dir /data/redis/data #存放数据的目录
appendonly yes #开启AOF持久化,redis会把所接收到的每一次写操作请求都追加到appendonly.aof文件中,当redis重新启动时,会从该文件恢复出之前的状态。
appendfilename "appendonly.aof" #AOF文件名称
appendfsync everysec #表示对写操作进行累积,每秒同步一次
以下为打开注释并修改
cluster-enabled yes #启用集群
cluster-config-file nodes-7000.conf #集群配置文件,由redis自动更新,不需要手动配置,运行多实例时请注修改为对应端口
cluster-node-timeout 5000 #单位毫秒。集群节点超时时间,即集群中主从节点断开连接时间阈值,超过该值则认为主节点不可以,从节点将有可能转为master
cluster-replica-validity-factor 10 #在进行故障转移的时候全部slave都会请求申请为master,但是有些slave可能与master断开连接一段时间了导致数据过于陈旧,不应该被提升为master。该参数就是用来判断slave节点与master断线的时间是否过长。(计算方法为:cluster-node-timeout * cluster-replica-validity-factor,此处为:5000 * 10 毫秒)
cluster-migration-barrier 1 #一个主机将保持连接的最小数量的从机,以便另一个从机迁移到不再被任何从机覆盖的主机
cluster-require-full-coverage yes #集群中的所有slot(16384个)全部覆盖,才能提供服务#注:
所有节点配置文件全部修改切记需要修改的ip、端口、pid文件...避免冲突。确保所有机器都修改。
启动
密码:123456
redis-cli --cluster create 10.76.224.90:6379 10.76.224.91:6379 10.76.224.92:6379 10.76.224.93:6379 10.76.224.90:6380 10.76.224.91:6380 10.76.224.92:6380 10.76.224.93:6380 --cluster-replicas 1 -a 密码
中间写yes同意