层层链路
当 一个从节点 其 主节点 为 另一个主节点的从节点 时,后者依旧为从节点.
删除主从关系:
127.0.0.1:6380> slaveof no one # 删除之前设置的主从关系,恢复为主节点
OK
哨兵模式
自动切换主从关系的模式.
主从切换的模式方法是:当主服务器宕机后,需要手动把一台服务器切换为主服务器 ,费时.
而Redis2.8后支持Sentinel(哨兵)框架解决该问题.
哨兵模式能够后台监控主机是否故障,如果故障了会根据投票数自动将从库转换为主库.
哨兵模式是一个特殊的模式,是一个独立的进程,需要独立运行.
其原理是哨兵通过发送命令,等待Redis服务器响应,从而监控多个Redis实例.
然而一个哨兵进程监控Redis服务器,也有可能出现问题,为此,可以使用多个哨兵进行监控. 各个哨兵之间还会进行监控,从而形成多哨兵模式.
配置哨兵模式:
1.配置哨兵配置文件 sentinel.conf
------- 简易配置 ----------
# sentinel monitor 被监控的名称 主机地址 端口 1(投票制)
sentinel monitor myredis 127.0.0.1 6379 1
------- 全部默认 ----------
# 这个是Redis6379配置内容,其他文件同理新增然后改一下端口即可,26380
#当前Sentinel服务运行的端口
protected-mode no
port 26381
# 哨兵监听的主服务器 后面的1表示主机挂掉以后进行投票,只需要1票就可以从机变主机
sentinel monitor mymaster 127.0.0.1 6379 2
# 3s内mymaster无响应,则认为mymaster宕机了 默认为30s
sentinel down-after-milliseconds mymaster 3000
#如果10秒后,mysater仍没启动过来,则启动failover
sentinel failover-timeout mymaster 10000
# 执行故障转移时, 最多有1个从服务器同时对新的主服务器进行同步
sentinel parallel-syncs mymaster 1
# 设置哨兵sentinel 连接主从的密码 注意必须为主从设置一样的验证密码,没有的话不用设置
sentinel auth-pass mymaster 123456
2.启动哨兵.
# Windows下启动哨兵模式
redis-server sentinel.conf --sentinel
# Linux下启动哨兵模式
redis-sentinel sentinel.conf
如果此时Master节点断开了,这是就会在其中从机中投票选出新主机(Master节点).
可以从哨兵日志查看出新主节点服务器.
[16196] 03 Apr 13:15:00.092 * +failover-state-wait-promotion slave 127.0.0.1:6381 127.0.0.1 6381 @ myredis 127.0.0.1 6379 # 6379端口主节点断开
[16196] 03 Apr 13:15:01.079 # +promoted-slave slave 127.0.0.1:6381 127.0.0.1 6381 @ myredis 127.0.0.1 6379
[16196] 03 Apr 13:15:01.079 # +failover-state-reconf-slaves master myredis 127.0.0.1 6379
[16196] 03 Apr 13:15:01.150 * +slave-reconf-sent slave 127.0.0.1:6380 127.0.0.1 6380 @ myredis 127.0.0.1 6379
[16196] 03 Apr 13:15:02.140 * +slave-reconf-inprog slave 127.0.0.1:6380 127.0.0.1 6380 @ myredis 127.0.0.1 6379
[16196] 03 Apr 13:15:02.140 * +slave-reconf-done slave 127.0.0.1:6380 127.0.0.1 6380 @ myredis 127.0.0.1 6379
[16196] 03 Apr 13:15:02.211 # +failover-end master myredis 127.0.0.1 6379
[16196] 03 Apr 13:15:02.211 # +switch-master myredis 127.0.0.1 6379 127.0.0.1 6381 # 主节点切换为6381端口服务器
[16196] 03 Apr 13:15:02.212 * +slave slave 127.0.0.1:6380 127.0.0.1 6380 @ myredis 127.0.0.1 6381
[16196] 03 Apr 13:15:02.212 * +slave slave 127.0.0.1:6379 127.0.0.1 6379 @ myredis 127.0.0.1 6381
如果原主节点服务器重启后,其原主节点服务器只能当做新主节点服务器的从机.
哨兵模式总结
哨兵模式优点:
1.哨兵集群,基于主从复制的模式,所有的主从配置优点它全都有.
2.主从可以切换,故障可以转移,系统的可用性更好.
3.哨兵模式就是主从模式的升级,手动到自动.
哨兵模式缺点:
1.Redis不好在线扩容,集群容量一旦到达上限,在线扩容就十分麻烦.
2.实现哨兵模式的配置很麻烦.