Redis Clusterで出来ないこと

Redis Clusterを触ってて、おおお…マジか…と思ったことがいくつかあった。

スレーブからGETできない

通常のRedis のレプリケーションだとスレーブからGETできますが、 Redis Clusterだとできません。マスターからGETしろとメッセージがでます。

これはおそらくスレーブはマスターがダウンしたときにマスターとして昇格するための予備としての扱いだからだと思われます。

スレーブのスレーブを作れない

通常のRedis のレプリケーションだとスレーブを親としてスレーブを追加することができます。 多段スレーブですね。

しかしRedis Clusterはできません。

スレーブからGETもできないのでスケールさせたいときはマスターを増やしましょうということなんだと思います。

redis-trib.rbを使ってdel-nodeするときマスターにデータがあるとマスターをdel-nodeできない

当たり前といえば当たり前ですが、

スレーブならdel-nodeできますが、マスターの場合データがあるとdel-nodeできません。

なのでデータを削除するかリシャーディングする必要があります。