백엔드
redis sync 문제 해결하기
두줄요약
Redis Cluster에서 `keys` 명령어로 인해 replica 동기화가 반복 실패하는 문제를 분석했습니다. `scan` 사용과 버퍼 제한 설정 점검으로 재발 방지 포인트를 정리했습니다.
문제 상황
- 3대 마스터, 3대 replica로 구성된 Redis Cluster에서 replica 동기화가 반복적으로 끊김
- 팀원 한 명의
keys명령어 사용 이후 master-replica 연결이 끊기고 재동기화가 계속 발생
원인 분석
keys사용으로 대량 응답이 발생하면서 replica의 client output buffer가 빠르게 증가- master의
client-output-buffer-limit slave한도에 걸려 replica 연결이 종료 - cluster sync 중 BGSAVE와 full resync가 반복되며 재시도 비용이 누적
해결 방법
keys대신scan사용으로 대량 조회 방식 변경- replica sync 상황과 Redis 로그,
info replication,cluster info,cluster nodes로 원인 확인 - Redis Cluster에서
client-output-buffer-limit과maxmemory설정 관계 재점검
