목차
Add Slots
Delete Slots
마스터 노드 실패 시뮬레이션
마스터-슬레이브 관계를 수동으로 전환
데이터 베이스 Redis Redis 클러스터 구축 및 활용

Redis 클러스터 구축 및 활용

May 10, 2023 pm 03:16 PM
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 <node_id>

<node_id>를 해당 마스터 노드의 ID로 바꾸십시오. 모든 노드의 정보와 상태.

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 클러스터는 마스터 노드 장애 후 슬레이브 노드를 마스터 노드로 자동 전환하는 기능을 지원합니다. 클러스터 장애 조치 명령을 사용하여 마스터 노드 장애를 시뮬레이션하거나 마스터-슬레이브를 수동으로 전환할 수 있습니다. 예를 들면 다음과 같습니다.

마스터 노드 실패 시뮬레이션

클러스터 장애 조치

마스터-슬레이브 관계를 수동으로 전환

클러스터 복제 <node_id> # 슬레이브 노드의 마스터 노드 수정
클러스터 장애 조치

노드가 복구되면 슬레이브 노드는 자동으로 슬레이브 노드로 복원되고 마스터 노드 동기 데이터와 통신합니다.

4. 요약

이 기사에서는 Redis 클러스터의 구성 및 사용을 소개합니다. Redis 클러스터는 수평적 확장과 고가용성을 달성하여 대규모 데이터 저장 및 높은 동시 액세스를 위한 우수한 솔루션을 제공합니다. 그러나 Redis 클러스터의 구축과 운영 및 유지 관리도 상대적으로 복잡하며 데이터 백업 및 내결함성 처리가 필요합니다. 실제 사용에서는 비즈니스 시나리오와 시스템 규모에 따라 적절한 Redis 클러스터 솔루션을 선택하는 것이 필요합니다.

위 내용은 Redis 클러스터 구축 및 활용의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

뜨거운 기사 태그

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

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

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

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

Windows 11 10.0.22000.100 설치 시 발생하는 0x80242008 오류 해결 방법 Windows 11 10.0.22000.100 설치 시 발생하는 0x80242008 오류 해결 방법 May 08, 2024 pm 03:50 PM

Windows 11 10.0.22000.100 설치 시 발생하는 0x80242008 오류 해결 방법

Redis에서 비밀번호를 변경하는 방법 Redis에서 비밀번호를 변경하는 방법 Apr 20, 2024 am 03:00 AM

Redis에서 비밀번호를 변경하는 방법

PHP 함수 병목 현상을 분석하고 실행 효율성을 향상시킵니다. PHP 함수 병목 현상을 분석하고 실행 효율성을 향상시킵니다. Apr 23, 2024 pm 03:42 PM

PHP 함수 병목 현상을 분석하고 실행 효율성을 향상시킵니다.

Redis는 메모리 캐시인가요? Redis는 메모리 캐시인가요? Apr 20, 2024 am 05:26 AM

Redis는 메모리 캐시인가요?

Golang API 캐싱 전략 및 최적화 Golang API 캐싱 전략 및 최적화 May 07, 2024 pm 02:12 PM

Golang API 캐싱 전략 및 최적화

Redis는 비관계형 데이터베이스인가요? Redis는 비관계형 데이터베이스인가요? Apr 20, 2024 am 05:36 AM

Redis는 비관계형 데이터베이스인가요?

PHP 개발의 캐싱 메커니즘 및 응용 실습 PHP 개발의 캐싱 메커니즘 및 응용 실습 May 09, 2024 pm 01:30 PM

PHP 개발의 캐싱 메커니즘 및 응용 실습

erlang과 golang 중 어느 것이 더 나은 성능을 갖고 있나요? erlang과 golang 중 어느 것이 더 나은 성능을 갖고 있나요? Apr 21, 2024 am 03:24 AM

erlang과 golang 중 어느 것이 더 나은 성능을 갖고 있나요?

See all articles