Redis 클러스터 구축 및 활용
Redis는 빠른 읽기 및 쓰기, 다중 데이터 구조 지원, 데이터 지속성 등의 기능을 갖춘 비관계형 고성능 키-값 데이터베이스이며 캐시, 카운터, 메시지 대기열 및 기타 시나리오에서 널리 사용됩니다. 실제 애플리케이션에서는 단일 Redis 인스턴스의 성능에는 일정한 제한이 있으므로 수평 확장 및 고가용성을 달성하려면 Redis 클러스터를 사용해야 합니다. 이번 글에서는 Redis 클러스터의 구축과 활용에 대해 소개하겠습니다.
1. Redis 클러스터란
Redis 클러스터는 여러 Redis 노드로 구성된 분산 시스템으로, 각 노드는 노드 간 데이터를 복제하고 샤딩하여 데이터 일관성을 보장합니다. Redis 클러스터는 데이터의 분산 저장을 실현하기 위해 샤딩 모드를 채택합니다. 각 노드는 데이터의 일부만 특정 알고리즘을 통해 다른 노드에 매핑됩니다.
Redis 클러스터에는 주로 마스터 노드와 슬레이브 노드의 두 가지 노드 유형이 포함됩니다. 마스터 노드는 클라이언트로부터 쓰기 요청을 수신하고, 슬레이브 노드에서 마스터 노드의 데이터를 복제하고, 클라이언트로부터 읽기 요청을 수신하는 역할을 담당하며, 노드 이중화 및 장애 조치를 달성하기 위해 슬레이브 노드 간에도 마스터-슬레이브 복제 관계가 형성될 수 있습니다. 마스터 노드에 장애가 발생하면 슬레이브 노드 중 하나가 자동으로 마스터 노드가 되어 클러스터의 가용성을 보장합니다.
2. Redis 클러스터 구축
1. 환경 준비
Redis 클러스터 구축을 시작하기 전에 다음 환경을 준비해야 합니다.
(1) Linux 서버: 가상 머신 또는 클라우드 호스트를 사용하여 구축할 수 있습니다. . 최소 3개의 서버를 준비하는 것이 좋습니다.
(2) Redis 설치 패키지: Redis 공식 홈페이지(https://redis.io/download)에서 Redis 설치 패키지의 최신 안정 버전을 다운로드합니다.
2. Redis 설치
다운로드한 Redis 설치 패키지를 서버에 추출하고 Redis를 컴파일하고 설치합니다.
tar xvzf redis-6.0.7.tar.gz
cd redis-6.0.7
make
make install
설치가 완료되면 redis-server 명령을 사용하여 Redis 서버를 시작할 수 있고, redis-cli 명령을 사용하여 Redis 서버에 연결하여 테스트할 수 있습니다.
3. Redis 클러스터 구성 및 시작
Redis 클러스터 구성은 구성 파일 redis.conf를 통해 완료됩니다. 서버에서 redis_7000.conf, redis_7001.conf 등의 여러 Redis 노드에 대한 구성 파일을 생성합니다. 각 노드에 대한 구성 파일의 내용은 다음과 같습니다:
port 7000
cluster-enabled yes
cluster-config-file node_7000.conf
cluster-node-timeout 5000
daemonize yes
logfile "/var/log/redis/redis.log"
pidfile "/var/run/redis/redis.pid"
dir "/var/lib/redis "
그 중 port는 노드의 포트 번호를 지정하고, Cluster-enabled는 클러스터 모드를 켜는 것을 의미하며, Cluster-config-file은 노드의 구성 파일을 지정하고, Cluster-node-timeout은 노드 간의 통신 시간 초과 기간을 지정합니다. node와 daemonize는 데몬 모드 사용 여부를 지정합니다. 실행 시 logfile과 pidfile은 각각 로그 파일과 pid 파일의 경로를 지정하고 dir은 데이터 파일의 경로를 지정합니다.
각 노드의 구성 파일을 수정한 후 redis-server 명령을 사용하여 각 노드의 Redis 서버를 시작합니다.
4. 클러스터 생성 및 노드 추가
redis-cli 명령을 사용하여 Redis 노드에 연결하고, Cluster Meet 명령을 사용하여 다른 노드를 추가합니다.
redis-cli -c -p 7000
cluster Meet 127.0 .0.1 7001
cluster Meet 127.0.0.1 7002
그런 다음 Cluster addlots 명령을 사용하여 각 노드에 슬롯을 추가합니다. 예:
cluster addedlots 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
마지막으로 클러스터 복제 명령을 사용하여 노드에서 마스터 노드를 지정합니다. 예:
cluster reply
3. Redis 클러스터 사용
1. 읽기 및 쓰기 작업
Redis 클러스터의 읽기 및 쓰기 작업은 redis-cli를 사용하여 모든 노드에 연결한 후 명령을 실행할 수 있습니다. 예를 들면 다음과 같습니다.
redis-cli -c -p 7000
set name "Redis Cluster"
get name
2 확장 및 축소
Cluster addslots 및 Cluster delslots 명령을 사용하여 추가할 수 있습니다. 또는 Redis 클러스터에 대한 슬롯을 삭제합니다. 예:
Add Slots
cluster addedlots 1024
Delete Slots
cluster delslots 0
슬롯을 추가하거나 삭제한 후에는 Cluster rebalance 명령을 실행하여 슬롯을 재할당해야 합니다.
3. 장애 조치 및 복구
Redis 클러스터는 마스터 노드 장애 후 슬레이브 노드를 마스터 노드로 자동 전환하는 기능을 지원합니다. 클러스터 장애 조치 명령을 사용하여 마스터 노드 장애를 시뮬레이션하거나 마스터-슬레이브를 수동으로 전환할 수 있습니다. 예를 들면 다음과 같습니다.
마스터 노드 실패 시뮬레이션
클러스터 장애 조치
마스터-슬레이브 관계를 수동으로 전환
클러스터 복제
클러스터 장애 조치
노드가 복구되면 슬레이브 노드는 자동으로 슬레이브 노드로 복원되고 마스터 노드 동기 데이터와 통신합니다.
4. 요약
이 기사에서는 Redis 클러스터의 구성 및 사용을 소개합니다. Redis 클러스터는 수평적 확장과 고가용성을 달성하여 대규모 데이터 저장 및 높은 동시 액세스를 위한 우수한 솔루션을 제공합니다. 그러나 Redis 클러스터의 구축과 운영 및 유지 관리도 상대적으로 복잡하며 데이터 백업 및 내결함성 처리가 필요합니다. 실제 사용에서는 비즈니스 시나리오와 시스템 규모에 따라 적절한 Redis 클러스터 솔루션을 선택하는 것이 필요합니다.
위 내용은 Redis 클러스터 구축 및 활용의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

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

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

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

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

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











Redis Cluster Mode는 Sharding을 통해 Redis 인스턴스를 여러 서버에 배포하여 확장 성 및 가용성을 향상시킵니다. 시공 단계는 다음과 같습니다. 포트가 다른 홀수 redis 인스턴스를 만듭니다. 3 개의 센티넬 인스턴스를 만들고, Redis 인스턴스 및 장애 조치를 모니터링합니다. Sentinel 구성 파일 구성, Redis 인스턴스 정보 및 장애 조치 설정 모니터링 추가; Redis 인스턴스 구성 파일 구성, 클러스터 모드 활성화 및 클러스터 정보 파일 경로를 지정합니다. 각 redis 인스턴스의 정보를 포함하는 Nodes.conf 파일을 작성합니다. 클러스터를 시작하고 Create 명령을 실행하여 클러스터를 작성하고 복제본 수를 지정하십시오. 클러스터에 로그인하여 클러스터 정보 명령을 실행하여 클러스터 상태를 확인하십시오. 만들다

Redis 데이터를 지우는 방법 : Flushall 명령을 사용하여 모든 키 값을 지우십시오. FlushDB 명령을 사용하여 현재 선택한 데이터베이스의 키 값을 지우십시오. 선택을 사용하여 데이터베이스를 전환 한 다음 FlushDB를 사용하여 여러 데이터베이스를 지우십시오. del 명령을 사용하여 특정 키를 삭제하십시오. Redis-Cli 도구를 사용하여 데이터를 지우십시오.

Redis 지시 사항을 사용하려면 다음 단계가 필요합니다. Redis 클라이언트를 엽니 다. 명령 (동사 키 값)을 입력하십시오. 필요한 매개 변수를 제공합니다 (명령어마다 다름). 명령을 실행하려면 Enter를 누르십시오. Redis는 작업 결과를 나타내는 응답을 반환합니다 (일반적으로 OK 또는 -err).

Redis는 단일 스레드 아키텍처를 사용하여 고성능, 단순성 및 일관성을 제공합니다. 동시성을 향상시키기 위해 I/O 멀티플렉싱, 이벤트 루프, 비 블로킹 I/O 및 공유 메모리를 사용하지만 동시성 제한 제한, 단일 고장 지점 및 쓰기 집약적 인 워크로드에 부적합한 제한이 있습니다.

Redis 소스 코드를 이해하는 가장 좋은 방법은 단계별로 이동하는 것입니다. Redis의 기본 사항에 익숙해집니다. 특정 모듈을 선택하거나 시작점으로 기능합니다. 모듈 또는 함수의 진입 점으로 시작하여 코드를 한 줄씩 봅니다. 함수 호출 체인을 통해 코드를 봅니다. Redis가 사용하는 기본 데이터 구조에 익숙해 지십시오. Redis가 사용하는 알고리즘을 식별하십시오.

Redis를 사용하여 잠금 작업을 사용하려면 SetNX 명령을 통해 잠금을 얻은 다음 만료 명령을 사용하여 만료 시간을 설정해야합니다. 특정 단계는 다음과 같습니다. (1) SETNX 명령을 사용하여 키 값 쌍을 설정하십시오. (2) 만료 명령을 사용하여 잠금의 만료 시간을 설정하십시오. (3) DEL 명령을 사용하여 잠금이 더 이상 필요하지 않은 경우 잠금을 삭제하십시오.

Redis의 대기열을 읽으려면 대기열 이름을 얻고 LPOP 명령을 사용하여 요소를 읽고 빈 큐를 처리해야합니다. 특정 단계는 다음과 같습니다. 대기열 이름 가져 오기 : "큐 :"와 같은 "대기열 : my-queue"의 접두사로 이름을 지정하십시오. LPOP 명령을 사용하십시오. 빈 대기열 처리 : 대기열이 비어 있으면 LPOP이 NIL을 반환하고 요소를 읽기 전에 대기열이 존재하는지 확인할 수 있습니다.

메시지 미들웨어로서 Redis는 생산 소비 모델을 지원하고 메시지를 지속하고 안정적인 전달을 보장 할 수 있습니다. Middleware 메시지로 Redis를 사용하면 낮은 대기 시간, 신뢰할 수 있으며 확장 가능한 메시징이 가능합니다.
