redis的主从备份设置,哨兵机制的配置

项目中使用redis进行数据的存储,但是奈何公司没有专业运维,项目部署总监只相信经理,然而项目经理并没有linux的使用经验,以前的项目也只是部署在windows server2008服务器上,所以没办法,上头一句话,即便知道不好也得干啊,所以花了一天时间搞这个windows下的主从备份及哨兵机制。

百度上查了很久,一直踩坑,部署了老半天都没成功,闲话不多说,言归正传

我这里使用了三台主机,分别是

master(主节点):   192.168.8.47
slave1(从节点1):   192.168.8.48
slave2(从节点2):   192.168.8.49

三台主机分别下载windows版本的redis,因为官方并未推出windows版本的redis,所以需要自己去GitHub下载,下载链接是Redis-GitHub,我用的是3.2.100版本的,下载链接为Redis-x64-3.2.100.zip ,当然你也可以下载我这里配置好的,你只需要把ip改一下,配置一下主从备份就可以使用了

redis的主从机制

一、修改配置文件
进入redis文件夹,找到文件夹下的redis.windows.conf,将该文件复制一份名为redis.conf,并作出以下修改
(bind 0.0.0.0是允许所有主机访问,安全起见,你可以设置你的后台服务端和几个redis的哨兵ip访问)

#master(requirepass可以不用设置,不要密码就不用设)

port 6379
bind 0.0.0.0
requirepass "123456"

slave1(主节点有密码配置masterauth,没有密码不用配置)

port 6379
bind 0.0.0.0
requirepass "123456"
slaveof 192.168.8.47 6379
masterauth "123456"

slave2(主节点有密码配置masterauth,没有密码不用配置)

port 6379
bind 0.0.0.0
requirepass "123456"
slaveof 192.168.8.47 6379
masterauth "123456"

二、启动redis机器

#master :   redis-server.exe redis.conf
#slave1 :   redis-server.exe redis.conf
#slave2:   redis-server.exe redis.conf

master节点出现以下界面表示主从配置成功
redis的主从备份设置,哨兵机制的配置_第1张图片

redis的哨兵机制

在redis的文件夹下新建一个文件sentinel.conf文件并作如下配置(redis有密码则配置sentinel auth-pass master)
#master

port 26379
sentinel monitor master 192.168.8.47 6379 2
sentinel down-after-milliseconds master 5000
sentinel auth-pass master 123456
sentinel config-epoch master 3
sentinel leader-epoch master 3
sentinel parallel-syncs master 1
sentinel failover-timeout mymaster 180000

#slave1

port 26379
sentinel monitor master 192.168.8.47 6379 2
sentinel down-after-milliseconds master 5000
sentinel auth-pass master 123456
sentinel config-epoch master 3
sentinel leader-epoch master 3
sentinel parallel-syncs master 1
sentinel failover-timeout mymaster 180000

#slave2

port 26379
sentinel monitor master 192.168.8.47 6379 2
sentinel down-after-milliseconds master 5000
sentinel auth-pass master 123456
sentinel config-epoch master 3
sentinel leader-epoch master 3
sentinel parallel-syncs master 1
sentinel failover-timeout mymaster 180000

sentinel的主要配置说明

1.sentinel monitor master 192.168.8.47 6379 2
监控的主节点的名字、IP 和端口,最后一个2的意思是有几台 Sentinel 发现有问题,就会发生故障转移,例如 配置为2,代表至少有2个 Sentinel 节点认为主节点不可达,那么这个不可达的判定才是客观的。对于设置的越小,那么达到下线的条件越宽松,反之越严格。一般建议将其设置为 Sentinel 节点的一半加1

2.sentinel down-after-millseconds mymaster 50000
这个是超时的时间(单位为毫秒)。打个比方,当你去ping一个机器的时候,多长时间后仍ping不通,那么就认为它是有问题,默认是30秒

3.sentinel parallel-syncs mymaster 1
parallel-syncs 用来限制在一次故障转移之后,每次向新的主节点发起复制操作的从节点个数,指出 Sentinel 属于并发还是串行。1代表每次只能复制一个,可以减轻 Master 的压力。

4.sentinel auth-pass
如果 Sentinel 监控的主节点配置了密码,sentinel auth-pass 配置通过添加主节点的密码,防止 Sentinel 节点对主节点无法监控,花了好久时间,就是忘记配置这个,导致始终连接不上redis的主节点。

5.sentinel failover-timeout mymaster 180000
表示故障转移的时间,超过时间则表示转移失败,即认为该failover失败

配置完成后启动
分别进入三台机器的redis文件目录下使用命令行输入以下命令

#master :   redis-server.exe sentinel.conf  --sentinel
#slave1 :   redis-server.exe sentinel.conf  --sentinel
#slave2:    redis-server.exe sentinel.conf  --sentinel

出现如下页面,则表示配置成功
在这里插入图片描述
下面测试主从切换,在这里我只启动了
但我主机挂了后,从机是否能成功上位变为主机
先看下当前的redis状态
分别在客户端输入

这是连接在master主机上的redis
info replication
redis的主从备份设置,哨兵机制的配置_第2张图片
这是连接的slave1的redis
info replication
redis的主从备份设置,哨兵机制的配置_第3张图片
将master关闭,然后等待一会在slave1上再次执行
info replication
redis的主从备份设置,哨兵机制的配置_第4张图片
slave1上的redis变成主节点,主从切换成功。

你可能感兴趣的:(redis)