背景

有数的低版本,redis主从切换会有小概率出现web,nginx连不上redis的报错,如下图所示:

redis主从切换会导致的问题 - 图1

从而导致前端访问出现如下图的情况:

redis主从切换会导致的问题 - 图2

解决方案

排查日志会发现redis1容器重启过,日志如下:

redis主从切换会导致的问题 - 图3

问题的原因是因为有数双机环境下nginx会连接两个redis,redis1和redis2,redis1为主,redis2为从,主从切换后,nginx会把流量打到redis2上,这时候前端访问不会出现问题,但如redis1又恢复了,nginx流量再打到redis1,就会出现前端访问出现如上的问题。

临时解决方法就是重启下nginx容器或者重启下web,inner-web,redis容器就可以恢复。永久解决方案就是升级有数的版本,高版本有数已经修复了这一问题。