redi通过哨兵sentinel实现主从切换
本次实验主要为了让哨兵监听redis主从复制,当主节点关闭后,哨兵会选举一台从节点成为主节点,并且让其他从节点变成新主节点得从节点
本次理论需要三台机器,一主两从,为了方便用一台服务器开启三个实例,一主两从
操作系统centos7.2(1511) yum install epel-release -y yum -y install redis安装源并且安装redis
mkdir /redis/700{1,2,3} -p 创建三个实例存放数据目录
cp /etc/redis.conf 7001 分别复制配置文件到三个实例的目录下
修改配置redis.conf
bind 0.0.0.0 #监听所有地址 port 7002 #监听的端口依次为7001、7002、7003 daemonize yes #后台守护方式开启服务 pidfile "/var/run/redis/redis_7001.pid" #因为是用的是1台机器的3个实例,所以指定不同的pid文件 ### SNAPSHOTTING ### dir "/data/redis_cluster/7001" #依次修改 ### REPLICATION ### 在这一段配置 slaveof 127.0.0.1 7001 #依次修改
启动三台实例,并确认7001节点为主节点,通过info replication查看主从情况,确认7001上有两台从节点7002,7003
修改/etc/redis-sentinel.conf
port 26379 #默认监听端口26379 #sentinel announce-ip 1.2.3.4 #监听地址,注释默认是0.0.0.0 sentinel monitor mymaster 127.0.0.1 7001 1 #指定主redis和投票裁决的机器数,即至少有1个sentinel节点同时判定主节点故障时,才认为其真的故障 下面保存默认就行,根据自己的需求修改 sentinel down-after-milliseconds mymaster 5000 #如果联系不到节点5000毫秒,我们就认为此节点下线。 sentinel failover-timeout mymaster 60000 #设定转移主节点的目标节点的超时时长。 sentinel auth-pass <master-name> <password> #如果redis节点启用了auth,此处也要设置password。 sentinel parallel-syncs <master-name> <numslaves> #指在failover过程中,能够被sentinel并行配置的从节点的数量;
systemctl start redis-sentinel 启动哨兵服务
tail -f /var/log/redis/sentinel.log 查看哨兵服务的日志,当出现+slave后面接着从节点的信息,即成功
模拟主节点故障,关闭主节点
过一会儿哨兵就会选举新的主节点,并把其他节点变成新的主节点的从节点
实验成功
当恢复旧的主节点后,会把旧的主节点当成新的主节点的从节点