RedisClusterで"Redis::CommandError: CLUSTERDOWN The cluster is down"エラーが頻発する場合はcluster-node-timeoutが短いせいかも

RedisClusterでアプリケーション側で"Redis::CommandError: CLUSTERDOWN The cluster is down"エラーがでたけど

Redisのログにはcluster downのログがはかれていなくて、原因が分からなかった。

あとたまに、Redisのログにごく短い間隔で

Cluster state changed: fail
Cluster state changed: ok

が出力されていることもあった。

で、調べた結果、cluster-node-timeoutが短かったのが原因でした。

cluster-node-timeoutは単位がmillisecondsなのだけれど、この値が5になっていてそのせいで通信に5ms超えた場合cluster downだと判断されたもよう。

cluster-node-timeoutを5000にしたらエラーは出なくなりました。