다음 Redis Tutorial 칼럼에서는 Redis의 세 가지 클러스터 모드인 클러스터 클러스터 모드를 소개합니다. 도움이 필요한 친구들에게 도움이 되길 바랍니다!
1. 이전에 Redis 클러스터 배포에 대한 세 가지 옵션을 본 적이 있지만 가장 성능이 좋은 것은 Redis에서 공식적으로 권장하는 redis-cluster입니다. 최고의 성능을 위해 redis-cluster 모드를 소개하겠습니다.
1.redis-cluster
A. 중앙 노드가 없는 방식을 사용하여 모든 노드에 16348개의 해시 슬롯을 저장합니다. CRC16(KEY) & 16348 = 해당 해시 슬롯을 가져오는 슬롯,
키에 액세스할 때 해당 해시 슬롯이 어느 노드에 있는지 찾은 다음 현재 액세스 노드에 실제로 이 해시 슬롯 노드가 할당되어 데이터를 가져옵니다. 노드는 경량 프로토콜 통신을 사용하여 대역폭 사용량을 줄이고 고성능을 제공합니다.
자동으로 로드 밸런싱 및 고가용성을 구현하고 장애 조치를 자동으로 구현하며 동적 확장을 지원합니다.
B. 또한 내부적으로 마스터-슬레이브를 구성해야 하며, 노드 중 절반이 비정상적인 노드를 발견하면 공동으로 변경된 노드의 상태를 변경하기로 결정합니다. 마스터 노드, 해당 슬레이브 노드가 마스터 노드를 자동으로 교체합니다. 원래 마스터 노드가 온라인 상태가 되면 슬레이브 노드가 됩니다.
클러스터의 마스터에 슬레이브 노드가 없으면 클러스터의 슬롯 매핑이 불완전하기 때문에 마스터가 종료된 후 전체 클러스터가 실패 상태로 들어갑니다. 클러스터의 마스터 중 절반 이상이 죽으면 슬레이브 유무에 관계없이 클러스터는 실패 상태가 됩니다.
C. 공식 권장 사항에 따르면 클러스터 배포에는 최소 3개의 마스터 노드가 필요합니다. 그런 다음 배포를 시작합니다
2. 각 경로에 구성 파일
을 추가합니다. redis.conf
################################## NETWORK ##################################### #bind 127.0.0.1protected-mode no port 1001################################# GENERAL ##################################### daemonize yes pidfile "/var/run/redis_1001.pid"logfile "/usr/software/redis/redis-cluster/1001/log/redis.log"################################ SNAPSHOTTING ################################dir "/usr/software/redis/redis-cluster/1001/data"################################ REDIS CLUSTER ############################### cluster-enabled yes cluster-config-file nodes-1001.conf cluster-node-timeout 15000################################## SECURITY ################################### requirepass "ww"
3. 클러스터 시작
1. redis-server /usr/software/redis/redis-cluster/1001/redis.conf를 사용하세요. 노드가 시작됩니다2. 시작한 후 클러스터를 생성할 수 있습니다
참고:
redis5.0 이후 클러스터를 생성하려면 이전 버전에서는 redis-trib.rb를 사용합니다. 하지만 Ruby 소프트웨어는 설치가 필요하며 이전 버전 5.0에 비해 상대적으로 복잡하고 추가 소프트웨어 설치가 필요하지 않아 편리합니다. 자세한 내용은 redis 공식 홈페이지를 참고해주세요https://redis.io/topics/cluster-tutorial
클러스터 명령어 생성: 여기서, Cluster-replicas 1은 마스터 다음의 여러 슬레이브를 나타내고, 1은 슬레이브 노드 1개를 나타냅니다.port 100x"/var/run/redis_100x.pid" logfile "/usr/software/redis/redis-cluster/100x/log/redis.log""/usr/software/redis/redis-cluster/100x/data"-config-file nodes-100x.conf
위 구성을 설정할 수 있나요? yes'를 수락) : yes
클러스터 자동 할당 결과는 다음과 같습니다.
3. 클러스터가 성공적으로 생성되었는지 확인합니다
먼저 마스터-슬레이브 페어링 상황을 확인합니다
실행: redis-cli -c -p 1001 -a ww
데이터가 자동으로 1002 노드에 할당되고 연결도 1002 노드로 전송됩니다
4. 장애 조치 확인
결론은 마스터 노드가 실패하면 하위 슬레이브 노드가 마스터 노드로 업그레이드되고 마스터 노드의 슬롯을 차지하게 된다는 것입니다. 이전 마스터 노드가 온라인 상태가 된 후에는 슬레이브 노드 역할만 할 수 있습니다.
1001을 죽여 노드 1004에서 마스터로 변환된 것을 확인합니다
1001을 다시 시작하면 슬레이브 노드가 됩니다
위 내용은 Redis의 세 가지 클러스터 모드 소개(클러스터 클러스터 모드)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!