백엔드 개발 · 중급
Redis Sentinel은 무엇이며, 어떤 문제를 해결하기 위해 사용되는지 설명해 주세요. 또한, Sentinel이 제공하는 고가용성(High Availability) 기능과 동작 방식에 대해 구체적으로 설명해 주세요.
힌트 · Master-Slave 구조에서 Master 장애 발생 시 자동 페일오버(Failover)를 수행하는 과정과 Sentinel의 역할에 초점을 맞춰 설명합니다.
고가용성자동 장애 감지자동 페일오버SentinelMaster/Slave
모범답안
Redis Sentinel은 Redis의 고가용성을 위한 솔루션입니다. Redis Master-Slave 구조에서 Master에 장애가 발생했을 때, 자동으로 Slave를 Master로 승격시켜 서비스 중단을 최소화하는 역할을 합니다.
Sentinel은 Master의 상태를 주기적으로 확인하고, 장애를 감지하면 다른 Sentinel들과 합의하여 Failover를 결정합니다. Failover 과정에서 적절한 Slave를 새로운 Master로 선택하고, 나머지 Slave들을 새로운 Master를 바라보도록 설정합니다. 또한, 클라이언트에게 변경된 Master 정보를 알려주어 서비스가 계속 정상적으로 작동하도록 돕습니다. 이를 통해 Redis를 사용하는 시스템의 안정성과 가용성을 높일 수 있습니다.
읽었다면, 이제 직접 답해볼 차례예요
패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.
함께 보는 캐시 (Redis) 면접 질문
- Redis에서 설정 가능한 다양한 eviction 정책(예: LRU, LFU, volatile-lru 등)에 대해 설명하고, 서비스 특성을 고려하여 적절한 정책을 선택하는 기준과 그 이유를 설명해 주세요.
- Redis의 String, Hash, List, Set, Sorted Set과 같은 주요 데이터 구조 각각의 특징과 실제 서비스에서 어떤 용도로 활용될 수 있는지 구체적인 예시를 들어 설명해 주세요.
- Redis의 영속성(Persistence)을 제공하는 RDB와 AOF 방식의 동작 원리, 장단점을 비교하고, 데이터 유실 허용 범위와 복구 속도 관점에서 어떤 상황에 어떤 방식을 선택해야 하는지 설명해 주세요.
- 분산 환경에서 캐시를 사용할 때 발생할 수 있는 데이터 불일치(Stale Data) 문제의 원인을 설명하고, 이를 해결하기 위한 일반적인 방법들을 제시해 주세요.
- 캐시 스탬피드(Cache Stampede) 또는 썬더링 허드(Thundering Herd) 현상이 무엇인지 설명하고, 이로 인해 시스템에 어떤 문제가 발생할 수 있는지, 그리고 이를 방지하기 위한 기술적인 해결책은 무엇인지 설명해 주세요.
- 분산 환경에서 Redis 캐시를 사용할 때, 데이터 일관성을 유지하기 위한 전략과 발생할 수 있는 문제점(예: stale data)을 설명하고, 이를 해결하기 위한 구체적인 방안들을 제시해 주세요.