>  기사  >  데이터 베이스  >  Redis6의 마스터-슬레이브 복제 아키텍처에 대해 이야기하고 그 특징이 무엇인지 살펴보겠습니다!

Redis6의 마스터-슬레이브 복제 아키텍처에 대해 이야기하고 그 특징이 무엇인지 살펴보겠습니다!

青灯夜游
青灯夜游앞으로
2021-12-14 10:03:201828검색

이 글은 Redis6의 마스터-슬레이브 복제 아키텍처를 이해하고 Redis6 마스터-슬레이브 복제의 특징을 소개하는 글이 모든 분들께 도움이 되기를 바랍니다.

Redis6의 마스터-슬레이브 복제 아키텍처에 대해 이야기하고 그 특징이 무엇인지 살펴보겠습니다!

마스터-슬레이브 복제 소개

마스터-슬레이브 복제는 하나의 Redis 서버에서 다른 Redis 서버로 데이터를 복사하는 것을 의미합니다. 전자는 마스터 노드이고 후자는 슬레이브 노드가 됩니다. 데이터 복제는 단방향이며 마스터 노드에서 슬레이브 노드로만 가능합니다. 기본적으로 각 Redis 서버는 마스터 노드이며, 마스터 노드는 여러 슬레이브 노드를 가질 수 있지만(슬레이브 노드가 없을 수도 있음), 슬레이브 노드는 마스터 노드를 하나만 가질 수 있습니다. [관련 권장 사항: Redis 동영상 튜토리얼]

마스터-슬레이브 복제 사용의 이점: 읽기와 쓰기의 분리로 마스터 노드의 읽기 용량을 확장하고 마스터 노드에 대한 부담을 공유할 수 있습니다. 재해 복구를 위해 마스터 노드가 다운되면 슬레이브 노드를 마스터 노드의 백업으로 사용할 수 있으며 언제든지 설치할 수 있습니다.

아키텍처 소개

슬레이브 노드는 마스터 노드의 데이터를 복사한 후 읽기-쓰기 분리를 할 수 있습니다. 단일 노드인 경우 애플리케이션 요청이 마스터 노드에 집중되지만, 슬레이브 노드의 경우 읽기 부담을 일부 감당할 수 있습니다. 마스터 노드는 읽기 및 쓰기 작업을 수행할 수 있지만 슬레이브 노드는 읽기 작업만 수행할 수 있습니다. 이는 마스터 노드에 대한 압력을 공유합니다.

Redis 마스터-슬레이브 복제, 하나의 마스터와 두 개의 슬레이브 아키텍처 환경 준비

지금까지 많은 개념에 대해 이야기를 나눴으니 이제 Redis의 마스터-슬레이브 복제 아키텍처 배포를 시작해 보겠습니다. 이번에는 하나의 마스터와 두 개의 슬레이브를 배포합니다. -노예 아키텍처.

#创建文件
mkdir -p /data/redis/master/data
mkdir -p /data/redis/slave1/data
mkdir -p /data/redis/slave2/data

#从节点开启只读模式(默认)
replica-read-only yes

#从节点访问主节点的密码,和requirepass⼀样
masterauth 123456
    
#哪个主节点进⾏复制
replicaof 8.129.113.233 6379

먼저 마스터 노드를 생성하고, data/redis/master/data 디렉터리에서 redis.conf 파일을 터치하고, redis.conf 파일을 편집하세요

bind 0.0.0.0
port 6379
daemonize yes
requirepass "123456"
logfile "/usr/local/redis/log/redis1.log"
dbfilename "xdclass1.rdb"
dir "/usr/local/redis/data"
appendonly yes
appendfilename "appendonly1.aof"
masterauth "123456"

그런 다음 data/redis/slave1/data에서 슬레이브 노드 1을 생성하세요. 디렉토리 redis.conf

bind 0.0.0.0
port 6380
daemonize yes
requirepass "123456"
logfile "/usr/local/redis/log/redis2.log"
dbfilename "xdclass2.rdb"
dir "/usr/local/redis/data"
appendonly yes
appendfilename "appendonly2.aof"
replicaof 8.129.113.233 6379
masterauth "123456"

슬레이브 노드 2를 생성하고 data/redis/slave2/data 디렉토리에 redis.conf

bind 0.0.0.0
port 6381
daemonize yes
requirepass "123456"
logfile "/usr/local/redis/log/redis3.log"
dbfilename "xdclass3.rdb"
dir "/usr/local/redis/data"
appendonly yes
appendfilename "appendonly3.aof"
replicaof 8.129.113.233 6379
masterauth "123456"

를 빌드합니다. 참고: 방화벽을 끄고 네트워크 보안 그룹을 열어야 합니다. 알리바바 클라우드 서버.

생성 후 구성된 노드 시작

시작 방법:

#启动主
./redis-server/data/redis/master/data/redis.conf
#启动从1
./redis-server/data/redis/slave1/data/redis.conf
#启动从2
./redis-server/data/redis/slave2/data/redis.conf

정보 복제를 사용하여 현재 노드의 상태 보기

마스터-슬레이브 복제 및 읽기-쓰기 확인

1.在主节点创建一个key
set name jack
2.在两个从节点测试是否能拿到主节点的数据
get name
3.在从节点set key是失败的,因为从节点只支持读操作

Redis6 마스터-슬레이브 아키텍처 - 복제 읽기-쓰기 분리 원리 분석

마스터-슬레이브 복제는 두 가지 유형으로 나누어집니다. 하나는 마스터-슬레이브가 처음 연결될 때 전체 동기화이고 다른 하나는 전체 동기화가 완료된 후 증분 동기화입니다.

전체 복사: 마스터 서버는 Redis 데이터에서 rdb 파일을 생성하기 위해 백그라운드 프로세스를 시작합니다. 마스터 서버는 클라이언트로부터 수신된 모든 쓰기 명령을 캐시합니다. 프로세스가 백그라운드에 저장되면 rdb 파일이 전달됩니다. 이때 슬레이브 서버는 마스터 서버의 데이터를 가지고 있습니다. 그 후, 마스터 서버는 이 기간 동안 캐시된 명령을 redis 전송 프로토콜을 통해 슬레이브 서버에 보내고, 슬레이브 서버는 이 명령을 로컬에서 자체적으로 사용하여 결국 데이터 일관성을 달성합니다

증분 복제: 마스터 노드는 계속해서 명령을 작성합니다. 슬레이브가 초기화를 완료하고 작업을 시작하면 마스터 서버가 쓰기 작업을 전송하여 서버에 동기화하는 프로세스를 증분 복제라고 합니다. 증분 복제는 서버가 쓰기 명령을 실행할 때마다 동일한 쓰기 명령을 슬레이브 서버에 보내고, 슬레이브 서버는 수신된 쓰기 명령을 수락하여 실행하는 것을 의미합니다.

마스터-슬레이브 복제의 특징은 무엇입니까?

마스터-슬레이브 복제는 마스터/슬레이브 서버에 대해 비차단입니다. 마스터 노드는 데이터 동기화 중에 정상적으로 처리될 수 있습니다. 슬레이브 노드, 각 슬레이브 노드는 다른 슬레이브 노드의 연결을 수락할 수 있습니다. 슬레이브 노드는 키가 만료되는 것을 허용하지 않습니다. 대신 마스터 노드의 키가 만료되어 삭제된 후 슬레이브 노드에 삭제 명령을 보내 삭제합니다.

복제 가속화: 노드가 재동기화를 완료하면 디스크에 RDB 파일을 생성한 후 이 파일을 로드하여 서버에서 데이터를 보내야 하는데 디스크 속도가 상대적으로 낮다면 어떨까요? 이로 인해 마스터 노드와 슬레이브 노드 간의 데이터 불일치가 발생합니다. Redis 새 버전에서는 디스크 없는 복제가 지원되며, 디스크를 미들웨어로 사용하지 않고 RBD 파일이 네트워크를 통해 슬레이브 서버로 직접 전송됩니다.

마스터-슬레이브 연결이 끊어지면 재동기화 없이 다시 연결 후 중단된 곳부터 복제를 계속할 수 있습니다. 버전 2.8 이후 이 새로운 재동기화 기능은 PSYNC 명령을 사용하는 반면, 이전 버전은 SYNC 명령을 사용합니다

더 많은 프로그래밍 관련 지식을 보려면 프로그래밍 비디오를 방문하세요! !

위 내용은 Redis6의 마스터-슬레이브 복제 아키텍처에 대해 이야기하고 그 특징이 무엇인지 살펴보겠습니다!의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 juejin.cn에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제