노드 제거 방법
Redis 인터렉티브에서 forget 명령어를 수행하거나
클러스터 마스터 노드 제거 방법
먼저 2가지 조건을 만족해야 합니다.
슬롯이 비워져 있어야 합니다.
마스터 노드에 슬롯이 할당되어 있다면, 먼저 슬롯을 비워주어야 합니다.
슬롯을 비우는 방법(다른 노드로 변경하는 방법)은 아래 URL 을 참고해 주세요.
삭제할 마스터 노드의 복제 노드가 없어야 합니다.
노드를 삭제할 때는 다른 모든 노드로부터 forget 명령어를 수행하여야 하는데,
삭제할 마스터의 복제노드에서 forget 명령어를 수행할 수 없기 때문에 클러스터는 계속 유지되어 있습니다.
8000 마스터 노드를 삭제하고 싶을 때,
7000, 7001 노드에서는 삭제가 가능했지만 8000 마스터노드의 복제노드인 8001 에서는 삭제가 불가능합니다.
따라서 클러스터에서 해제할 수 없고 8000 마스터 노드에서는 클러스터 데이터를 계속 조회할 수 있습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | 127.0.0.1:7000> cluster nodes 869859e396c881b3c26f2a386c1495235225b57b 127.0.0.1:7000@17000 myself,master - 0 1586021994000 9 connected 0-16383 43597f93847795b38392bd496b60e6a3825ef889 127.0.0.1:8001@18001 slave 1b299b2e52ab3210f8d53599dcefff43f6ab6916 0 1586021995349 8 connected 1b299b2e52ab3210f8d53599dcefff43f6ab6916 127.0.0.1:8000@18000 master - 0 1586021994731 8 connected e8b8e9115aab2a8bb42ec9aff1c62f1aeb3cc10c 127.0.0.1:7001@17001 slave 869859e396c881b3c26f2a386c1495235225b57b 0 1586021994000 9 connected 127.0.0.1:7000> cluster forget 1b299b2e52ab3210f8d53599dcefff43f6ab6916 OK 127.0.0.1:7000> cluster nodes 869859e396c881b3c26f2a386c1495235225b57b 127.0.0.1:7000@17000 myself,master - 0 1586022050000 9 connected 0-16383 43597f93847795b38392bd496b60e6a3825ef889 127.0.0.1:8001@18001 slave - 0 1586022050468 8 connected e8b8e9115aab2a8bb42ec9aff1c62f1aeb3cc10c 127.0.0.1:7001@17001 slave 869859e396c881b3c26f2a386c1495235225b57b 0 1586022051008 9 connected 127.0.0.1:7001> cluster nodes 1b299b2e52ab3210f8d53599dcefff43f6ab6916 127.0.0.1:8000@18000 master - 0 1586022078482 8 connected 43597f93847795b38392bd496b60e6a3825ef889 127.0.0.1:8001@18001 slave 1b299b2e52ab3210f8d53599dcefff43f6ab6916 0 1586022078000 8 connected e8b8e9115aab2a8bb42ec9aff1c62f1aeb3cc10c 127.0.0.1:7001@17001 myself,slave 869859e396c881b3c26f2a386c1495235225b57b 0 1586022077000 0 connected 869859e396c881b3c26f2a386c1495235225b57b 127.0.0.1:7000@17000 master - 0 1586022078381 9 connected 0-16383 127.0.0.1:7001> cluster forget 1b299b2e52ab3210f8d53599dcefff43f6ab6916 OK 127.0.0.1:7001> cluster nodes 43597f93847795b38392bd496b60e6a3825ef889 127.0.0.1:8001@18001 slave - 0 1586022108000 8 connected e8b8e9115aab2a8bb42ec9aff1c62f1aeb3cc10c 127.0.0.1:7001@17001 myself,slave 869859e396c881b3c26f2a386c1495235225b57b 0 1586022107000 0 connected 869859e396c881b3c26f2a386c1495235225b57b 127.0.0.1:7000@17000 master - 0 1586022108233 9 connected 0-16383 127.0.0.1:8001> cluster nodes 1b299b2e52ab3210f8d53599dcefff43f6ab6916 127.0.0.1:8000@18000 master - 0 1586022133508 8 connected 869859e396c881b3c26f2a386c1495235225b57b 127.0.0.1:7000@17000 master - 0 1586022133608 9 connected 0-16383 43597f93847795b38392bd496b60e6a3825ef889 127.0.0.1:8001@18001 myself,slave 1b299b2e52ab3210f8d53599dcefff43f6ab6916 0 1586022133000 0 connected e8b8e9115aab2a8bb42ec9aff1c62f1aeb3cc10c 127.0.0.1:7001@17001 slave 869859e396c881b3c26f2a386c1495235225b57b 0 1586022133098 9 connected 127.0.0.1:8001> cluster forget 1b299b2e52ab3210f8d53599dcefff43f6ab6916 (error) ERR Can`t forget my master! 127.0.0.1:8000> get key -> Redirected to slot [12539] located at 127.0.0.1:7000 "mozi" | cs |
혹은 redis-cli 명령어에서 del-node 명령어로도 진행할 수 있습니다.
이 때는 del-node 뒤에 삭제할 IP, Port, 노드 ID 를 입력해 주면 됩니다.
1 2 3 4 5 6 | $ redis-cli --cluster del-node 127.0.0.1:8000 1b299b2e52ab3210f8d53599dcefff43f6ab6916 >>> Removing node 1b299b2e52ab3210f8d53599dcefff43f6ab6916 from cluster 127.0.0.1:8000 >>> Sending CLUSTER FORGET messages to the cluster... >>> 127.0.0.1:8001 as replica of 127.0.0.1:8000 Node 127.0.0.1:8001 replied with error: ERR Can't forget my master! | cs |
슬롯도 없고 복제노드도 없다면 마스터 노드를 삭제해 줍니다.
redis-cli 를 통해서 진행하면 모든 노드에서 한번에 삭제가 진행되고 삭제한 마스터 노드는 SHUTDOWN 됩니다.
1 2 3 4 5 6 7 8 | $ redis-cli --cluster del-node 127.0.0.1:8000 1b299b2e52ab3210f8d53599dcefff43f6ab6916 >>> Removing node 1b299b2e52ab3210f8d53599dcefff43f6ab6916 from cluster 127.0.0.1:8000 >>> Sending CLUSTER FORGET messages to the cluster... >>> SHUTDOWN the node. 127.0.0.1:7000> cluster nodes 869859e396c881b3c26f2a386c1495235225b57b 127.0.0.1:7000@17000 myself,master - 0 1586022855000 9 connected 0-16383 e8b8e9115aab2a8bb42ec9aff1c62f1aeb3cc10c 127.0.0.1:7001@17001 slave 869859e396c881b3c26f2a386c1495235225b57b 0 1586022870303 9 connected | cs |
redis 인터랙티브 창에서 forget 명령어로 진행하는 경우에는
모든 노드(삭제노드 제외)에서 일일이 수행해주어야 하고, 마지막으로 마스터 노드에서는 SHUTDOWN 도 수기로 해주어야 합니다.
클러스터 슬레이브 노드 제거 방법
마스터 노드를 삭제해 주듯이 진행합니다.
redis-cli 를 통해서 진행하면 모든 노드에서 한번에 삭제가 진행되고 삭제한 마스터 노드는 SHUTDOWN 됩니다.
1 2 3 4 5 6 7 8 9 | $ redis-cli --cluster del-node 127.0.0.1:8001 43597f93847795b38392bd496b60e6a3825ef889 >>> Removing node 43597f93847795b38392bd496b60e6a3825ef889 from cluster 127.0.0.1:8001 >>> Sending CLUSTER FORGET messages to the cluster... >>> SHUTDOWN the node. 127.0.0.1:8000> cluster nodes e8b8e9115aab2a8bb42ec9aff1c62f1aeb3cc10c 127.0.0.1:7001@17001 slave 869859e396c881b3c26f2a386c1495235225b57b 0 1586022791577 9 connected 869859e396c881b3c26f2a386c1495235225b57b 127.0.0.1:7000@17000 master - 0 1586022792597 9 connected 0-16383 1b299b2e52ab3210f8d53599dcefff43f6ab6916 127.0.0.1:8000@18000 myself,master - 0 1586022791000 8 connected | cs |
redis 인터랙티브 창에서 forget 명령어로 진행하는 경우에는
모든 노드(삭제노드 제외)에서 일일이 수행해주어야 하고, 마지막으로 삭제할 노드에서 SHUTDOWN 도 수기로 해주어야 합니다.
'Database > Redis' 카테고리의 다른 글
[Redis] 클러스터 Failover 및 FailBack 하는 방법 (0) | 2020.04.05 |
---|---|
[Redis] 현재 오픈되어 있는 슬롯, 없는 슬롯 확인 및 추가하는 방법 (0) | 2020.04.05 |
[Redis] 클러스터 노드간 슬롯을 변경(이동)하는 방법 (2) | 2020.04.05 |
[Redis] 클러스터 마스터노드 구성방법, 마스터 노드, 복제 노드 추가 방법 (0) | 2020.03.23 |
[Redis] redis-cli create 옵션으로 클러스터 노드 마스터/복제 구성방법과 주의점 (0) | 2020.03.23 |