このセクションでは、Redis のクラスタリングを解除する方法について紹介します。

クラスタリングが組まれている各ノードに登録されているキー配置状況を確認します。ここでは、各ノードにキーが配置されていない状態であることがわかります。

[root@localhost ~]# redis-cli -h 192.168.24.199 -p 6390 --cluster info 192.168.24.199:6390
192.168.24.199:6390 (ca443c4f...) -> 0 keys | 5461 slots | 0 slaves.
192.168.24.199:6392 (e582ec76...) -> 0 keys | 5461 slots | 0 slaves.
192.168.24.199:6391 (26370355...) -> 0 keys | 5462 slots | 0 slaves.
[OK] 0 keys in 3 masters.
0.00 keys per slot on average.
[root@localhost ~]# 

クラスタリングを組んでいる各ノードに対して、クラスタリングの解除を実行します。ノードがキーが配置されていない状態であれば、クラスタリングが正常に解除されます。

[root@localhost ~]# redis-cli -h 192.168.24.199 -p 6390 -c CLUSTER RESET
OK
[root@localhost ~]# 
[root@localhost ~]# redis-cli -h 192.168.24.199 -p 6391 -c CLUSTER RESET
OK
[root@localhost ~]# 
[root@localhost ~]# redis-cli -h 192.168.24.199 -p 6392 -c CLUSTER RESET
OK
[root@localhost ~]# 

もし、ノードにキーが配置されている状態でクラスタリングの解除を実行した場合には、キーが配置されたマスターノードのクラスタを解除できないといったエラーが表示されます。

[root@localhost ~]# redis-cli -h 192.168.24.199 -p 6391 -c CLUSTER RESET
(error) ERR CLUSTER RESET can't be called with master nodes containing keys
[root@localhost ~]#

上記エラーがされる場合、対象となるノードに接続します。

[root@localhost ~]# redis-cli -h 192.168.24.199 -p 6391 -c
192.168.24.199:6391> 

以下のコマンドを実行します。

192.168.24.199:6391> select 0
OK
192.168.24.199:6391> flushdb
OK
192.168.24.199:6391> flushall
OK
192.168.24.199:6391> exit
[root@localhost ~]# 

再度、対象のノードに対して、クラスタリングの解除を実行します。

[root@localhost ~]# redis-cli -h 192.168.24.199 -p 6391 -c CLUSTER RESET
OK
[root@localhost ~]#