Redis 6380 포트를 별도 인스턴스로 운영 중이었음.
서버에서는 redis-cli -p 6380 접속이 되는데,
API(Node.js)에서는 ECONNREFUSED가 간헐적으로 발생하는 상황이었음.
로그를 보면 어떤 순간에는 연결 성공이 뜨고,
대부분은 연결 오류가 발생하는 형태였음.
증상
API 로그에 반복적으로 아래 에러 발생
Error: connect ECONNREFUSED 10.7.1.137:6380
Redis 로그(systemd) 확인 결과
redis-6380.service: start operation timed out redis-6380.service:
Failed with result 'timeout' redis-6380.service: Scheduled restart job, restart counter is at 800+
→ Redis 서비스가 정상 기동되지 못하고 계속 재시작 중이었음.
Redis 설정과 systemd 서비스 타입이 서로 안 맞아서 Redis가 계속 죽고 있었음.
그래서 포트가 대부분 시간에 닫혀 있었고, API에서는 ECONNREFUSED가 간헐적으로 발생함.
systemd Type 설정 오류 (가장 중요)
- redis.conf
daemonize no supervised systemd
- redis-6380.service
Type=forking
forking 은 daemonize yes 일 때만 사용
systemd는 fork + pidfile 기다리는데 Redis는 안 함
start timeout → 재시작 무한 루프
PIDFile 경로 불일치
- redis.conf
/run/redis-6380/redis-6380.pid
- systemd
/run/redis-redis/redis-6380.pid
-> systemd가 pidfile 못 찾음
- > 서비스 시작 실패로 판단
다음에 같은 증상 나오면
1) journalctl -u redis-* 먼저 본다
2) Type / daemonize / supervised 조합 확인
3) pidfile 경로 동일한지 확인
4) bind IP 실제 존재 여부 확인
ECONNREFUSED 원인은 네트워크가 아니라 Redis 서비스 설정 불일치였음.
다음엔 이거보기
'TIL' 카테고리의 다른 글
| K3S MetalLB 란 (0) | 2026.01.05 |
|---|---|
| K3s Flannel, CNI 정리 (0) | 2026.01.03 |
| Fernet 정리 (1) | 2025.12.29 |
| 마이그레이션 제대로 한 후기 (0) | 2025.12.18 |
| Redis String vs Set (0) | 2025.12.18 |