Redis 구조 및 성능 비교: Stand-Alone부터 Cluster까지
Redis 구조
stand alone
- Redis가 단일 인스턴스로 동작하는 방식.
- 별도의 복제본이 없으므로, 장애 시 데이터 복구가 어렵고 가용성이 낮음.
master-replica
- replica가 master로 sync를 따라간다.
- Replica는 Master의 데이터를 실시간으로 복제하여 데이터를 보호함.
- 장점: Master가 장애가 나더라도 Replica가 데이터를 유지함.
- 단점: 자동 장애 조치가 없으며, 수동으로 장애 복구를 수행해야 함.
sentinel ( 일반적으로 많이 선택하는 방식)
- master - replica구조 기반인데 master가 장애가 나면 replica를 master로 전환함
- 그 사이에 원래 master를 복구 하고 replica로 만듦
cluster
- 데이터를 샤딩(Sharding)하여 여러 노드에 분산 저장함.
Redis 구성 방식 비교
availability
- cluster ≥ sentinel > master-replica > stand alone
- Cluster와 Sentinel은 자동 장애 복구 기능을 제공하여 가용성이 높음
performance
- Cluster는 데이터 샤딩을 통해 성능을 극대화함.
- Sentinel과 Master-Replica는 읽기 성능이 뛰어남.
efficiency
- stand alone > master-replica ≥ sentinel > cluster
- Stand-Alone은 관리 및 자원 사용 측면에서 가장 효율적.
- Cluster는 성능과 가용성은 높지만 자원 사용이 가장 큼.
기타 참고 사항
Availability : 99.95%
- Master가 장애 시, 약 4시간 이내에 복구가 완료되어야 함.
- 주말, 휴가, 재해(Disaster), 정전, Rack 장애 등의 상황을 고려한 계획 필요.
Performance : Read 300Kb/s
- 실제 benchmark test 수행
Efficiency
- 제한된 자원 내에서 최적화된 구성 필요
- 확보한 자원 VM 2대로 구성 가능한지 검토 등의 필요
Redis vs Memcached: 데이터 타입, 성능 및 특징 비교
Redis 와 MemCached 의 차이점 일반적으로 Redis 는 MemCached의 기능의 대부분을 포함하고 있음.
- DataType Redis : Hash, List, Set, Sorted Set, Geo, String Memcached : String
- Thread Redis : Single Thread Memcached : Multi Threads
- Scale Redis : ScaleOut Memcached : Scale Up
- Memory Policy Redis : no eviction, volatile-lru, volatile-ttl, allkey-random Memcached : LRU
- Persistence Redis : AOF, RDB
- (redis는 aof, rdb파일을 디스크에 쓰므로서 하드웨어가 내려가도 그 파일을 붙잡고 다시 올라간다. 그러므로 쓰기로한 기간까지 RTO(Recovery Time Object)를 가져갈 수 있다. 최소한 1분에 한번씩은 쓴다 그러면 아무리 다운 되도 1분전 데이터는 올릴 수 있다.(하드웨어만 정상이면) ) MemCached : None
- ETC Redis : LUA Script
- (pythone비슷한 언어인데 이 스크립트를 지원한다.)
'개발일지 > message queue,broker' 카테고리의 다른 글
Kafka와 SSE를 활용한 비동기 처리 (0) | 2025.01.07 |
---|---|
Kafka Stream 이란 (0) | 2024.12.05 |
Kafka 인스턴스 생성 과정 (0) | 2024.11.25 |
Redis설치 및 Configuration(2) (0) | 2024.08.28 |
Redis설치 및 Configuration(1) (0) | 2024.08.21 |