今天在做redis sentinel环境的时候发现一个坑,花了好久才查到原因。
那就是在做redis实例主从的时候,之前会因为安全方面的原因配置rename-command CONFIG XXXXXXX 将config 命令给rename掉。但是通过sentinel来做主从切换的时候,会block在failover-state-wait-promotion slave这步上。
但是手工登录redis做failover是可行的,后来查了半天才发现可能是config命令被rename掉了。由于redis sentinel在做主从切换的时候会重写redis实例的配置,所以应该就是这一步因为config被rename后才无法正常处理下去。然后将redis实例的配置rename-command CONFIG XXXXXXX 注释后,就能够正常主从切换了。
另附上 redis sential的配置信息
bind 0.0.0.0 port 26379 daemonize yes loglevel debug logfile "/var/log/26379.log" dir /var/lib/redis/sentinel-26379 sentinel monitor mymaster 10X.10X.10X.10X 6379 2 sentinel down-after-milliseconds mymaster 30000 #这个是默认值 可能时间有点大 会导致节点切换的比较晚 sentinel parallel-syncs mymaster 1 sentinel failover-timeout mymaster 180000
Cloudhu 个人随笔|built by django|
沪ICP备16019452号-1