728x90
1. Redis Clustering이란?
각기 다른 서버들을 하나로 묶어 하나의 시스템처럼 동작하게 함으로써 클라이언트에게 고가용성(HA) 제공하는 것이다.
클러스터링의 장점
- 데이터를 여러 서버에서 처리함으로써 특정서버에 트래픽이 집중되는 것을 분산 시킴
- 서버 일부분이 장애가 나더라도 다른 서버의 보완을 통해 서비스를 계속 이어나갈 수 있음
- 데이터 유실 최소화
2. 설정 방법
2-1. 마스터 노드 설정 파일(6379.conf/6380.conf/6381.conf)에 클러스터 설정 추가
1387 cluster-enabled yes 1396 cluster-config-file nodes-6379.conf 1403 cluster-node-timeout 15000 1254 appendonly yes |
appendonly 옵션은 데이터를 Append Only File에 쓸지 여부를 정하는 파라미터이다. yes/no로 설정할 수 있다. 디폴트는 no이다. 레디스는 주 기억 장소가 메인 메모리(RAM)이다. 그러므로 서버 이상 시(레디스 서버 비정상 종료, OS 이상 상황 발생, 서버 전원 끊김 등) 저장한 모든 데이터가 날아가게 된다. 이를 방지하기 위한 기능 중 하나가 Appendonly이다. Appendonly를 yes로 설정하면 레디스 서버에 데이터가 입력/수정/삭제될 때 마다 디스크에 쓴다. 그래서 서버 이상 시에도 데이터를 보존할 수 있다. 디스크에 써진 데이터는 레디스 서버 시작 시 읽켜서 메모리에 저장된다.
2-2. 클러스터 생성
[root@sydev redis]# redis-cli -a foobared --cluster create 127.0.0.1:6379 127.0.0.1:6380 127.0.0.1:6381 Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe. >>> Performing hash slots allocation on 3 nodes... Master[0] -> Slots 0 - 5460 Master[1] -> Slots 5461 - 10922 Master[2] -> Slots 10923 - 16383 M: 6d9a9acb0616bbe345cfb248f6f8dfbd726db2bc 127.0.0.1:6379 slots:[0-5460] (5461 slots) master M: 78e3aaf93f932f9feded3ffcd3b4d1db1ef3f583 127.0.0.1:6380 slots:[5461-10922] (5462 slots) master M: 95830583afde90f9305a589a0fa6b17b1ead9f96 127.0.0.1:6381 slots:[10923-16383] (5461 slots) master Can I set the above configuration? (type 'yes' to accept): yes >>> Nodes configuration updated >>> Assign a different config epoch to each node >>> Sending CLUSTER MEET messages to join the cluster Waiting for the cluster to join .. >>> Performing Cluster Check (using node 127.0.0.1:6379) M: 6d9a9acb0616bbe345cfb248f6f8dfbd726db2bc 127.0.0.1:6379 slots:[0-5460] (5461 slots) master M: 78e3aaf93f932f9feded3ffcd3b4d1db1ef3f583 127.0.0.1:6380 slots:[5461-10922] (5462 slots) master M: 95830583afde90f9305a589a0fa6b17b1ead9f96 127.0.0.1:6381 slots:[10923-16383] (5461 slots) master [OK] All nodes agree about slots configuration. >>> Check for open slots... >>> Check slots coverage... [OK] All 16384 slots covered. |
2-3. 데이터 삽입 및 확인
[root@sydev redis]# redis-cli -c -p 6379 -a foobared 127.0.0.1:6379> set key1 value1 -> Redirected to slot [9189] located at 127.0.0.1:6380 OK 127.0.0.1:6380> 127.0.0.1:6380> set key2 value2 -> Redirected to slot [4998] located at 127.0.0.1:6379 OK 127.0.0.1:6379> get key1 -> Redirected to slot [9189] located at 127.0.0.1:6380 "value1" 127.0.0.1:6380> get key2 -> Redirected to slot [4998] located at 127.0.0.1:6379 "value2" |
728x90
'오픈소스 > Redis' 카테고리의 다른 글
[Redis] Redis-Tomcat 연동 설정 및 인스턴스간 Session 유지 테스트 (0) | 2022.01.06 |
---|---|
[Redis] 레디스 장애 복구를 위한 Sentinel 구성 (0) | 2021.10.29 |
[Redis] Redis 기본 개념 및 설치 구성 (0) | 2021.10.28 |