- Published on
Redis Cluster 서버 이전 프로세스
1. 새로운 Redis서버 실행 및 Cluster에 추가
-
새로운 Redis를 실행한다. 마스터와 슬레이브 모두 실행시킨다. (redis-server redis.conf)
-
Redis가 실행된 것을 확인한다. (ps –ef | grep redis)
xxx 2918 1 0 Jun29 ? 07:24:20 /usr/local/bin/redis-server xx.xxx.xx.xx:10000 [cluster]
xxx 29694 1 0 Jun12 ? 06:03:01 /usr/local/bin/redis-server xx.xxx.xx.xx:10001 [cluster]
-
새로 실행시킨 Redis를 기존의 Cluster에 추가한다. (새로 실행시킨 Redis master, slave 연결이 서버끼리 서로 교차되도록 추가한다.)
-
(1) Master추가 : ./redis-trib.rb add-node “새로운마스터IP:Port” “기존마스터IP:Port”
-
(2) Slave추가 : ./redis-trib.rb add-node --slave --master-id “연결할마스터ID” "새로운슬레이브IP:Port" “기존마스터IP:Port”
-
-
Cluster에 master(3개), slave(3개)가 추가되었는지 확인한다. (redis-cli -h “서버IP” -p “서버Port” -c cluster nodes)
12ff8f59819a xx.xxx.xx.27:10000 master - 0 1513662526246 30 connected 0
34ef6f85a9ae xx.xxx.xx.28:10000 master - 0 1513662525244 36 connected 0
124d5c93e2d8 xx.xxx.xx.28:10001 slave 12ff8f59819a 0 1513662526746 30 connected
56491c39daff xx.xxx.xx.29:10000 master - 0 0 34 connected 0
3412fd99e36c xx.xxx.xx.29:10001 slave 34ef6f85a9ae 0 1513662525745 36 connected
560ddf5739c8c xx.xxx.xx.27:10001 slave 56491c39daff 0 1513662527248 34 connected
2. 새로 추가된 Redis로 슬롯 및 연동서버 이동.
-
새로 추가된 Redis master 3개에 기존의 슬롯을 일부 할당한다. (1000개씩)
- (1) 슬롯분배 커맨드 : ./redis-trib.rb reshard “기존마스터IP:Port”
- (2) 이후 커맨드에서 slot은 1000, receiving node ID, Source node ID를 입력해준다.
-
NodeJS 테스트 페이지를 만들어서 새로 추가된 Redis의 ip, port로 매핑했을 때 get, set, pub/sub동작등에 이상이 없는지 체크한다.
-
Redis를 사용하는 다른 서버들도 새로 추가된 redis의 ip, port로 매핑하고, 재시작시킨다.
-
기존 Redis master들의 슬롯을 모두 새로 추가된 Redis master들로 옮긴다. (1번과 동일 작업)
-
Redis Cluster에서 총 16384개의 슬롯이 모두 이동된 것을 확인한다. (redis-cli -h “서버IP” -p “서버Port” -c cluster nodes)
12ff8f59819a xx.xxx.xx.27:10000 master - 0 1513662526246 30 connected 10923-16383
34ef6f85a9ae xx.xxx.xx.28:10000 master - 0 1513662525244 36 connected 5461-10922
56491c39daff xx.xxx.xx.29:10000 master - 0 0 34 connected 0-5460
3. 기존 Redis노드 제거
-
기존 Redis 노드를 Cluster에서 제거하고, 내린다.
-
(1) Cluster에서 Redis노드 제거 : ./redis-trib.rb del-node "새로운마스터IP:Port" "제거할마스터노드ID”
-
(2) RedisCluster확인 : redis-cli -h “서버IP” -p “서버Port” -c cluster nodes
-