TIL

Redis on-off가 1~2분 주기로 반복될 때

하얀잔디 2026. 1. 1. 12:41

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