데브허브 | DEVHUB | There's more than one way to scale Redis/Valkey to 1M op/s...There's more than one way to scale Redis/Valkey to 1M op/s...
- Redis/Valkey는 단일 인스턴스로도 10만 op/s 이상을 처리할 수 있으며, 목표는 100만 op/s 달성입니다. 🚀
- 수직 스케일링 시, Redis/Valkey는 단일 스레드에 의존하므로 코어 수가 많다고 성능이 비례하여 증가하지 않으며, 오히려 단일 코어 성능이 낮으면 저하될 수 있습니다. 📉
- 최적의 성능을 위해서는 베어 메탈 환경과 동일 데이터 센터 내 인스턴스 배치가 중요하며, 네트워크 지연은 성능에 큰 영향을 미칩니다. 🌐
- 파이프라이닝은 여러 명령을 한 번에 전송하여 처리량을 크게 늘리는 효과적인 방법으로, 10배 파이프라이닝으로 100만 op/s를 달성할 수 있습니다. ⚡
- 하지만 파이프라이닝은 모든 사용 사례에 적용하기 어렵고, 단일 인스턴스의 자원 한계(CPU, 메모리, 네트워크)를 근본적으로 해결하지 못합니다. 🚧
- 수평 스케일링의 첫 번째 전략인 읽기 복제는 주(Primary) 인스턴스에 쓰기, 복제본(Replica)에 읽기를 분산하여 읽기 성능을 향상시키지만, 쓰기 성능은 여전히 주 인스턴스에 의해 제한됩니다. 📚
- 읽기 복제는 데이터 복제 비용, 복제 지연(결과적 일관성), 주 인스턴스의 단일 장애점(Sentinel로 완화 가능) 등의 단점이 있습니다. ⚠️
- Redis/Valkey 클러스터는 데이터를 여러 노드에 자동으로 샤딩하여 CPU, 메모리, 네트워크를 수평적으로 확장하며, 읽기 및 쓰기 성능을 모두 향상시킵니다. 🧩
- 클러스터는 16,384개의 해시 슬롯을 사용하여 키를 노드에 분산하며, 이를 통해 진정한 고가용성과 확장성을 제공합니다. 🔗