Redis 클러스터 구축 및 활용

WBOY
풀어 주다: 2023-05-10 15:16:36
원래의
1562명이 탐색했습니다.

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

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

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

클러스터 장애 조치

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

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

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

4. 요약

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

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

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!