찾다
데이터 베이스Redis마스터 및 슬레이브 노드를 축소하는 Redis 클러스터 클러스터의 자세한 예

이 글에서는 클러스터 클러스터 축소 개념, 클러스터에서 6390 마스터 노드 축소, 데이터 검증 등 Redis 클러스터 클러스터의 마스터 및 슬레이브 노드 축소와 관련된 문제를 주로 소개하는 Redis에 대한 관련 지식을 제공합니다. . 마이그레이션 프로세스로 인해 데이터 이상 현상이 발생하는지 여부 등 모든 분들께 도움이 되기를 바랍니다.

마스터 및 슬레이브 노드를 축소하는 Redis 클러스터 클러스터의 자세한 예

추천 학습: Redis 비디오 튜토리얼

1.클러스터 클러스터 축소 개념

프로젝트 압력 수용 용량이 너무 높으면 프로젝트 압력을 높이기 위해 노드를 추가해야 합니다. 그다지 높지는 않지만 클러스터를 축소하여 다른 프로젝트에 사용하고 싶습니다. 클러스터 축소 작업은 클러스터 확장과 동일합니다.

용량 확장 시 명령을 한 번 실행하면 성공적인 슬롯 마이그레이션이 가능합니다. 축소 시에는 여러 마스터 노드가 있는 만큼 여러 번 실행해야 합니다. 예를 들어 오프라인 상태가 될 노드는 여전히 남아 있습니다. 3개의 마스터 노드를 실행하려면 3번 실행해야 하며 마이그레이션 슬롯 수를 3으로 나누어야 하며 각 노드도 균등하게 분산되어야 합니다.

축소 시 할당할 슬롯 수를 먼저 입력하고, 누구에게 할당할지, 마지막으로 슬롯 할당 위치를 입력해야 합니다. 일반적으로 슬롯 수는 슬롯 수에 따라 결정됩니다. 오프라인이 될 호스트에 있는 슬롯을 클러스터 마스터 노드 수로 나누어 각 호스트에 할당된 슬롯이 동일하도록 할당할 대상을 입력할 때 첫 번째 노드의 ID를 입력합니다. 두 번째 마스터 노드의 ID, 마지막으로 슬롯을 제공하는 노드 ID가 오프라인 노드의 ID 번호입니다.

클러스터가 슬롯을 축소하고 확장해도 데이터 사용에는 영향을 미치지 않습니다.

클러스터 축소의 소스 끝은 오프라인으로 전환되는 마스터 노드이고, 대상 끝은 온라인 마스터 노드(여기에 할당된 노드)입니다.

마스터 노드에만 슬롯이 있으므로 마스터 노드의 슬롯을 다른 마스터 노드에 할당해야 함을 분명히 해야 합니다. 슬롯이 지워지면 호스트 노드가 오프라인이 될 수 있습니다.


마스터 및 슬레이브 노드를 축소하는 Redis 클러스터 클러스터의 자세한 예클러스터 축소 전과 후 비교 사진

마스터 및 슬레이브 노드를 축소하는 Redis 클러스터 클러스터의 자세한 예

클러스터 축소 작업 단계:

1. 오프라인으로 전환해야 하는 마스터 노드의 슬롯을 분산시키기 위해 reshard 명령을 실행합니다.

2. 마스터 노드가 여러 개인 경우에는 reshard 명령을 여러 번 실행해야 합니다. 먼저 분할할 슬롯 수를 입력한 다음 분할 대상을 입력하고 마지막으로 분할 위치를 입력합니다.

3. 슬롯 분산이 완료되고 오프라인이 될 마스터 노드에 데이터가 없으면 클러스터에서 해당 노드를 삭제합니다.

클러스터 정보

현재 클러스터에는 마스터 4개와 슬레이브 4개, 총 8개의 노드가 있습니다. 클러스터를 마스터 3개와 슬레이브 3개로 변경하고 다른 프로그램에서 사용할 수 있도록 노드 2개를 축소해야 합니다.


마스터 및 슬레이브 노드를 축소하는 Redis 클러스터 클러스터의 자세한 예2. 클러스터에서 6390 마스터 노드를 축소합니다.

2.1. 각 노드에 할당해야 하는 슬롯 수를 계산합니다.

6390 노드에 4096개의 슬롯이 있는 것을 볼 수 있습니다. 6390개 노드 후에도 여전히 3개의 마스터 노드가 있습니다. 4096을 3으로 나누어 1365개를 얻습니다. 슬롯을 할당할 때 각 노드에 1365개의 슬롯을 할당하여 균등하게 만듭니다.


마스터 및 슬레이브 노드를 축소하는 Redis 클러스터 클러스터의 자세한 예

2.2. 192.168.81.210의 6380 노드에 1365 슬롯 할당

192.168.81.210의 6390 노드에서 192.168의 6380 노드에 1365 슬롯을 할당해야 합니다. 81.210.

6380 노드 ID인 192.168.81.210에 수신 노드 ID는 무엇입니까?만 입력하면 할당된 슬롯이 누구에게 주어질 것인지를 나타냅니다.

그런 다음 소스 노드는 1365 슬롯이 할당된 노드를 의미하는 6390 노드의 ID인 192.168.81.240을 입력합니다. ID를 입력한 후 Enter 키를 누르면 어느 노드에서 이동할 것인지 묻는 메시지가 표시됩니다. 6390개만 슬롯을 할당해야 하므로 여기에 done을 입력하여 이 노드만 다른 노드에 1365개의 슬롯을 할당했음을 나타냅니다.

[root@redis-1 /data/redis_cluster/redis-3.2.9/src]# ./redis-trib.rb reshard 192.168.81.210:6380
How many slots do you want to move (from 1 to 16384)? 1365				#分配出多少个槽位

What is the receiving node ID? 80e256579658eb256c5b710a3f82c439665794ba				#将槽位分给那个节点

Please enter all the source node IDs.
  Type 'all' to use all the nodes as source nodes for the hash slots.
  Type 'done' once you entered all the source nodes IDs.
Source node #1:6bee155f136f40e28e1f60c8ddec3b158cd8f8e8					#从哪个节点分出槽位
Source node #2:done

Do you want to proceed with the proposed reshard plan (yes/no)? yes			#输入yes继续

다음은 노드 축소 과정의 스크린샷입니다.


데이터 마이그레이션 프로세스. 마스터 및 슬레이브 노드를 축소하는 Redis 클러스터 클러스터의 자세한 예

슬롯 마이그레이션이 성공했습니다. 마스터 및 슬레이브 노드를 축소하는 Redis 클러스터 클러스터의 자세한 예

마스터 및 슬레이브 노드를 축소하는 Redis 클러스터 클러스터의 자세한 예

2.3. 192.168.81.220

[root@redis-1 /data/redis_cluster/redis-3.2.9/src]# ./redis-trib.rb reshard 192.168.81.210:6380
How many slots do you want to move (from 1 to 16384)? 1365				#分配出多少个槽位

What is the receiving node ID? 10dc7f3f9a753140a8494adbbe5a13d0026451a1				#将槽位分给那个节点

Please enter all the source node IDs.
  Type 'all' to use all the nodes as source nodes for the hash slots.
  Type 'done' once you entered all the source nodes IDs.
Source node #1:6bee155f136f40e28e1f60c8ddec3b158cd8f8e8					#从哪个节点分出槽位
Source node #2:done

Do you want to proceed with the proposed reshard plan (yes/no)? yes			#输入yes继续
에서 6380개의 노드에 1365개의 슬롯을 할당합니다. 축소 과정을 보여주는 스크린샷입니다.

마스터 및 슬레이브 노드를 축소하는 Redis 클러스터 클러스터의 자세한 예
마스터 및 슬레이브 노드를 축소하는 Redis 클러스터 클러스터의 자세한 예
마스터 및 슬레이브 노드를 축소하는 Redis 클러스터 클러스터의 자세한 예

2.4.分配1365个槽位给192.168.81.230的6380节点

[root@redis-1 /data/redis_cluster/redis-3.2.9/src]# ./redis-trib.rb reshard 192.168.81.210:6380
How many slots do you want to move (from 1 to 16384)? 1366				#分配出多少个槽位

What is the receiving node ID? a4381138fdc142f18881b7b6ca8ae5b0d02a3228				#将槽位分给那个节点

Please enter all the source node IDs.
  Type 'all' to use all the nodes as source nodes for the hash slots.
  Type 'done' once you entered all the source nodes IDs.
Source node #1:6bee155f136f40e28e1f60c8ddec3b158cd8f8e8					#从哪个节点分出槽位
Source node #2:done

Do you want to proceed with the proposed reshard plan (yes/no)? yes			#输入yes继续

收缩过程截图展示。

마스터 및 슬레이브 노드를 축소하는 Redis 클러스터 클러스터의 자세한 예
마스터 및 슬레이브 노드를 축소하는 Redis 클러스터 클러스터의 자세한 예

当最后一个节点迁移完数据后,6390主节点槽位数变为0。

마스터 및 슬레이브 노드를 축소하는 Redis 클러스터 클러스터의 자세한 예

2.5.查看当前集群槽位分配

槽位及数据已经从6390即将下线的主机迁移完毕,可以看下当前集群三个主节点的槽位数。

可以非常清楚的看到,现在每个主节点的槽位数为5461。

마스터 및 슬레이브 노드를 축소하는 Redis 클러스터 클러스터의 자세한 예

如果觉得槽位重新分配后顺序不太满意,那么在执行一下reshard,把其它节点的槽位都分给192.168.81.210的6380上,这样一来,210的6380拥有的槽位就是0-16383,然后在将210的槽位一个节点分给5461个,分完之后,各节点的顺序就一致了。
마스터 및 슬레이브 노드를 축소하는 Redis 클러스터 클러스터의 자세한 예

3.验证数据迁移过程是否导致数据异常

多开几个窗口,一个执行数据槽位迁移,一个不断创建key,一个查看key的创建进度,一个查看key的数据。
持续测试,发现没有任何数据异常,全部显示ok。
마스터 및 슬레이브 노드를 축소하는 Redis 클러스터 클러스터의 자세한 예

4.将下线的主节点从集群中删除

4.1.删除节点

使用redis-trib删除一个节点,如果这个节点存在复制关系,有节点在复制当前节点或者当前节点复制别的节点的数据,redis-trib会自动处理复制关系,然后将节点删除,节点删除后会把对应的进程也停止运行。

删除节点之前必须确保该节点没有任何槽位和数据,否则会删除失败。

命令:./redis-trib.rb del-node 节点IP:端口 ID

[root@redis-1 /data/redis_cluster/redis-3.2.9/src]# ./redis-trib.rb del-node 192.168.81.240:6390 6bee155f136f40e28e1f60c8ddec3b158cd8f8e8
>>> Removing node 6bee155f136f40e28e1f60c8ddec3b158cd8f8e8 from cluster 192.168.81.240:6390
>>> Sending CLUSTER FORGET messages to the cluster...
>>> SHUTDOWN the node.

[root@redis-1 /data/redis_cluster/redis-3.2.9/src]# ./redis-trib.rb del-node 192.168.81.240:6391 f6b9320dfbc929ad5a31cdb149360b0fd8de2e60
>>> Removing node f6b9320dfbc929ad5a31cdb149360b0fd8de2e60 from cluster 192.168.81.240:6391
>>> Sending CLUSTER FORGET messages to the cluster...
>>> SHUTDOWN the node.

마스터 및 슬레이브 노드를 축소하는 Redis 클러스터 클러스터의 자세한 예

4.2.调整主从交叉复制

删掉192.168.81.240服务器上的两个redis节点后,192.168.81.210服务器上的6380就没有了复制关系,我们需要把192.168.81.230的6381节点复制192.168.81.210的6380节点。

[root@redis-1 ~]# redis-cli -h 192.168.81.230 -p 6381
192.168.81.230:6381> CLUSTER REPLICATE 80e256579658eb256c5b710a3f82c439665794ba
OK

마스터 및 슬레이브 노드를 축소하는 Redis 클러스터 클러스터의 자세한 예

4.3.当节点存在数据无法删除

[root@redis-1 /data/redis_cluster/redis-3.2.9/src]# ./redis-trib.rb del-node 192.168.81.220:6380 10dc7f3f9a753140a8494adbbe5a13d0026451a1
>>> Removing node 10dc7f3f9a753140a8494adbbe5a13d0026451a1 from cluster 192.168.81.220:6380
[ERR] Node 192.168.81.220:6380 is not empty! Reshard data away and try again.

마스터 및 슬레이브 노드를 축소하는 Redis 클러스터 클러스터의 자세한 예

5.将下线主机清空集群信息

redis-trib虽然能够将节点在集群中删除,但是无法将其的集群信息清空,如果集群信息还有保留,那么该接地那就无法加入其它集群。

마스터 및 슬레이브 노드를 축소하는 Redis 클러스터 클러스터의 자세한 예

在下线的redis节点上使用cluster reset删除集群信息即可。

192.168.81.240:6390> CLUSTER reset
OK

마스터 및 슬레이브 노드를 축소하는 Redis 클러스터 클러스터의 자세한 예

推荐学习:Redis视频教程

위 내용은 마스터 및 슬레이브 노드를 축소하는 Redis 클러스터 클러스터의 자세한 예의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
이 기사는 CSDN에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제
Redis : 데이터 저장소 및 서비스 역할을하는 방법Redis : 데이터 저장소 및 서비스 역할을하는 방법Apr 24, 2025 am 12:08 AM

redisactsasbothadatastoreandaservice.1) asadatastore, itusesin-memorystorageforfastoperations, 지원을 지원합니다

Redis 대 기타 데이터베이스 : 비교 분석Redis 대 기타 데이터베이스 : 비교 분석Apr 23, 2025 am 12:16 AM

redis 与其他数据库相比 与其他数据库相比, 与其他数据库相比 : 1) 速度极快 速度极快 速度极快, 读写操作通常在微秒级别; 2) 支持丰富的数据结构和操作; 3) 灵活的使用场景 3) 灵活的使用场景 灵活的使用场景 灵活的使用场景 灵活的使用场景 灵活的使用场景 灵活的使用场景 灵活的使用场景 灵活的使用场景 灵活的使用场景 灵活的使用场景 灵活的使用场景 灵活的使用场景 灵活的使用场景 灵活的使用场景 灵活的使用场景 灵活的使用场景 灵活的使用场景 灵活的使用场景 灵活的使用场景 灵活的使用场景 3) redis 또는 기타 데이터베이스를 선택할 때 특정 요구 사항과 시나리오에 따라 다릅니다. Redis는 고성능 및 저도가 낮은 응용 프로그램에서 잘 수행됩니다.

Redis의 역할 : 데이터 저장 및 관리 기능 탐색Redis의 역할 : 데이터 저장 및 관리 기능 탐색Apr 22, 2025 am 12:10 AM

Redis는 데이터 저장 및 관리에서 핵심적인 역할을하며 여러 데이터 구조 및 지속 메커니즘을 통해 현대 애플리케이션의 핵심이되었습니다. 1) Redis는 문자열, 목록, 컬렉션, 주문 컬렉션 및 해시 테이블과 같은 데이터 구조를 지원하며 캐시 및 복잡한 비즈니스 로직에 적합합니다. 2) RDB와 AOF의 두 가지 지속 방법을 통해 Redis는 신뢰할 수있는 스토리지 및 데이터의 빠른 복구를 보장합니다.

REDIS : NOSQL 개념 이해REDIS : NOSQL 개념 이해Apr 21, 2025 am 12:04 AM

Redis는 대규모 데이터의 효율적인 저장 및 액세스에 적합한 NOSQL 데이터베이스입니다. 1.Redis는 여러 데이터 구조를 지원하는 오픈 소스 메모리 데이터 구조 스토리지 시스템입니다. 2. 캐싱, 세션 관리 등에 적합한 매우 빠른 읽기 및 쓰기 속도를 제공합니다. 3. REDIS는 RDB 및 AOF를 통해 지속성을 지원하고 데이터 보안을 보장합니다. 4. 사용 예제에는 기본 키 값 쌍 작업 및 고급 수집 중복 제거 기능이 포함됩니다. 5. 일반적인 오류에는 연결 문제, 데이터 유형 불일치 및 메모리 오버플로가 포함되므로 디버깅에주의를 기울여야합니다. 6. 성능 최적화 제안에는 적절한 데이터 구조 선택 및 메모리 제거 전략 설정이 포함됩니다.

REDIS : 실제 사용 사례 및 예제REDIS : 실제 사용 사례 및 예제Apr 20, 2025 am 12:06 AM

실제 세계에서 Redis의 애플리케이션에는 다음이 포함됩니다. 1. 캐시 시스템으로서 데이터베이스 쿼리를 가속화, 2. 웹 응용 프로그램의 세션 데이터를 저장하려면 3. 실시간 순위를 구현하려면 메시지 전달을 메시지 큐로 단순화합니다. Redis의 다목적 성과 고성능은 이러한 시나리오에서 빛을 발합니다.

Redis : 기능과 기능을 탐색합니다Redis : 기능과 기능을 탐색합니다Apr 19, 2025 am 12:04 AM

Redis는 고속, 다양성 및 풍부한 데이터 구조로 인해 두드러집니다. 1) Redis는 문자열, 목록, 컬렉션, 해시 및 주문 컬렉션과 같은 데이터 구조를 지원합니다. 2) 메모리를 통해 데이터를 저장하고 RDB 및 AOF 지속성을 지원합니다. 3) Redis 6.0에서 시작하여 멀티 스레드 I/O 작업이 도입되어 동시 동시성 시나리오에서 성능이 향상되었습니다.

Redis는 SQL 또는 NOSQL 데이터베이스입니까? 대답이 설명되었습니다Redis는 SQL 또는 NOSQL 데이터베이스입니까? 대답이 설명되었습니다Apr 18, 2025 am 12:11 AM

redisisclassifiedasanoSqldatabaseBecauseItuseSakey-valuedatamodelinsteadofThraditionalRelationalDatabasemodel.Itoffersspeedandflexibility, makingIdealforreal-timeApplicationsandcaching, butitmaynotbesuitableforscenariosrequiringstrictaintetaintetaintetaintetaintetaintetaintegry

REDIS : 응용 프로그램 성능 및 확장 성 향상REDIS : 응용 프로그램 성능 및 확장 성 향상Apr 17, 2025 am 12:16 AM

Redis는 데이터를 캐싱하여 분산 잠금 및 데이터 지속성을 구현하여 응용 프로그램 성능 및 확장 성을 향상시킵니다. 1) 캐시 데이터 : Redis를 사용하여 데이터 액세스 속도를 향상시키기 위해 자주 액세스하는 데이터를 캐시합니다. 2) 분산 잠금 : Redis를 사용하여 분산 된 잠금 장치를 구현하여 분산 환경에서 작동의 보안을 보장합니다. 3) 데이터 지속성 : 데이터 손실을 방지하기위한 RDB 및 AOF 메커니즘을 통한 데이터 보안을 보장합니다.

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

안전한 시험 브라우저

안전한 시험 브라우저

안전한 시험 브라우저는 온라인 시험을 안전하게 치르기 위한 보안 브라우저 환경입니다. 이 소프트웨어는 모든 컴퓨터를 안전한 워크스테이션으로 바꿔줍니다. 이는 모든 유틸리티에 대한 액세스를 제어하고 학생들이 승인되지 않은 리소스를 사용하는 것을 방지합니다.

Atom Editor Mac 버전 다운로드

Atom Editor Mac 버전 다운로드

가장 인기 있는 오픈 소스 편집기

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

SecList

SecList

SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.