Redis Sentinel
Redis Sentinel配置主从复制的功能,针对主服务器(master)出现任何问题导致下线,进行故障转移。
Redis Sentinel会监视一系列主服务器及主服务的从服务器,通过向主服务器发送publish
命令和subscribe
命令,并向主服务器和从服务器发送ping
命令,各个Sentinel可以自主识别其他的Sentinel和其他可用的从服务器。
当主服务器失效的时候,监视这个主服务器的所有Sentinel会基于彼此共有的信息选出一个Sentinel,并从现有可用的所有从服务器中选出一个新的主服务器。当被选的从服务器升级成主服务器后,被选中 的Sentinel就会让剩余的其他从服务器去复制这个新的主服务器(默认情况下,Sentinel会一个接一个迁移从服务器,可以通过配置选项设置这个数量)。
综上,Redis Sentinel的作用就是将主服务器下的所有从服务器提供自动故障转移(Redis Sentinel是一个分布式系统,Redis Sentinel为Redis提供高可用性)。此外,Redis Sentinel还提供了可选的故障转移通知功能,这个功能可以通过用户提供的脚本来执行配置更新等操作。
配置
-
port 26379
端口号,自定义
-
daemonize yes
是否后台运行
-
logfile "./sentinel_26379.log"
日志文件,自定义
-
dir "./"
文件路径,自定义
-
sentinel monitor mymaster 127.0.0.1 6379 2
监控主服务器master的名字:mymaster,IP:192.168.0.1,port:6379。当Sentinel集群中有2个Sentinel认为master存在故障不可用,则进行自动故障转移。
-
sentinel down-after-milliseconds mymaster 20000
Sentinel会向master发送ping来确认master。如果在20秒内,ping不通master,则主观认为master不可用。
-
sentinel parallel-syncs mymaster 1
故障转移之后,进行新的主从复制,配置项指定了最多有多少个slave对新的master进行同步。那可以理解为1是串行复制,大于1是并行复制。
-
sentinel failover-timeout mymaster 180000
如果3分钟内没有完成故障转移操作,则视为转移失败。
port 26379
daemonize yes
logfile "./sentinel_26379.log"
dir "./"
sentinel monitor mymaster 192.168.0.1 6379 2
sentinel down-after-milliseconds mym