Redis Clusterを触ってて、おおお…マジか…と思ったことがいくつかあった。
スレーブからGETできない
通常のRedis のレプリケーションだとスレーブからGETできますが、 Redis Clusterだとできません。マスターからGETしろとメッセージがでます。
これはおそらくスレーブはマスターがダウンしたときにマスターとして昇格するための予備としての扱いだからだと思われます。
スレーブのスレーブを作れない
通常のRedis のレプリケーションだとスレーブを親としてスレーブを追加することができます。 多段スレーブですね。
しかしRedis Clusterはできません。
スレーブからGETもできないのでスケールさせたいときはマスターを増やしましょうということなんだと思います。
redis-trib.rbを使ってdel-nodeするときマスターにデータがあるとマスターをdel-nodeできない
当たり前といえば当たり前ですが、
スレーブならdel-nodeできますが、マスターの場合データがあるとdel-nodeできません。
なのでデータを削除するかリシャーディングする必要があります。