TIL

10장 클러스터

레디스 클러스터와 확장성

스케일업 vs 스케일 아웃

레디스에서의 확장성

레디스 클러스터의 기능

레디스 클러스터 동작 방법

해시슬롯을 이용한 데이터 샤딩

해시태그

user:{123}:profile
user:{123}:account

자동 재구성

자동 페일오버

자동 복제본 마이그레이션

레디스 클러스터 실행하기

클러스터 초기화

cluster-enabled yes
$ src/redis-cli --cluster create 192.168.0.11:6379 192.168.0.22:6379 ... --cluster replicas 1 -a nhncloud

클러스터 상태 확인하기

<id> <ip:port@cport> <flags> <master> <ping-sent> <pong-recv> <config-epoch> <link-state> <slot> <slot> ... <slot>

redis-cli를 이용해 클러스터 접근하기와 리디렉션

페일오버 테스트

레디스 클러스터 운영하기

클러스터 리샤딩

클러스터 리샤딩 - 간단 버전

redis-cli --cluster reshard <host>:<port> --cluster-from <node-id> 
--cluster-to <node-id> --cluster-slots <number of slots> --cluster-yes

클러스터 리샤딩 - 신규 노드 추가

노드 제거하기

레디스 클러스터로의 데이터 마이그레이션

redis-cli --cluster import 192.168.0.11:6379 --cluster-from 192.168.0.88:6379 --cluster-copy

복제본을 이용한 읽기 성능 향상

$ redis-cli -h 192.168.0.55 -c
192.168.0.55:6379> readonly
OK

레디스 클러스터 동작 방법

하트비트 패킷

해시슬롯 구성이 전파되는 방법

노드 핸드셰이크

클러스터 라이브 재구성

리디렉션

장애 감지와 페일오버

복제본 선출