Connection refused·timeout·NOAUTH와 OOM·evicted_keys를 분리하고 INFO·CONFIG GET으로 메모리 여유와 정책을 확인한 뒤 데이터 성격에 맞는 조치만 적용합니다.
Redis connection refusedRedis timeout NOAUTHOOM command not allowedmaxmemory-policyevicted_keysRedis memory fragmentation
환경Redis Open Source 7.2·7.4 및 지원 중인 8.x 최신 patch · redis-cli RESP2/RESP3 · standalone/replica 기준
분류데이터베이스
검토일2026-09-02
진행5단계 · 조회 우선
SAFE OPERATING BOUNDARY
중단·복구 기준부터 확인하세요
STOP CONDITIONS
여기서는 멈추세요
Redis가 권위 데이터인지 캐시인지, 백업·replica와 허용 가능한 키 손실 범위를 확인하지 못했다면 maxmemory·eviction 정책을 변경하지 않습니다.
ACL 비밀번호를 CLI 인자·shell history·문서에 평문으로 넣어야 하거나 TLS 검증을 꺼야 한다면 작업을 중단합니다.
evicted_keys가 이미 증가했고 복구 원본이 없거나 persistence가 실패 중이면 추가 eviction 전에 데이터 소유자와 복구 담당자를 호출합니다.
ROLLBACK
복구 기준
CONFIG SET 전 기록한 maxmemory와 maxmemory-policy를 같은 승인된 연결로 원복하고 INFO memory·stats를 다시 확인합니다. 정책 원복은 이미 evict된 키를 되살리지 않으므로 백업·권위 데이터 원본에서 복구해야 합니다. 영구 설정은 작업 전 백업과 배포 관리 소스를 사용하고 CONFIG REWRITE를 즉흥적으로 실행하지 않습니다.
ESCALATION PACK
담당자에게 전달할 자료
민감정보를 제거한 연결 오류 원문, DNS·TCP·TLS·ACL WHOAMI 결과
INFO memory·stats·clients·persistence와 CONFIG GET maxmemory·maxmemory-policy 전후 값
host 메모리·OOM 로그, evicted_keys·latency·hit/miss 변화와 데이터 복구 가능 여부
2026년 9월 2일 기준 upstream 공식 문서와 현재 지원 버전을 대조했습니다. 먼저 읽기 전용 명령으로 사실을 확인하고, 변경 명령은 영향·백업·복구 경로를 확인한 뒤 승인된 대상에만 적용하세요. <...> 자리표시자는 승인된 리터럴 값으로 직접 치환하고 외부 입력으로 shell 명령을 조립하거나 eval하지 마세요.
BEFORE YOU START
이런 증상에서 시작합니다
Connection refused, timeout 또는 connection reset 발생
NOAUTH Authentication required 또는 NOPERM 오류 발생
OOM command not allowed when used memory > maxmemory 발생
evicted_keys 증가, hit rate 저하 또는 redis-server가 OS OOM으로 종료됨
CHECK THE BRANCH
놓치기 쉬운 원인 분기
01
Connection refused인 경우
주소·포트가 맞다면 Redis 프로세스와 listen socket, bind·protected mode, 컨테이너 포트 매핑을 확인합니다. 외부 노출을 위해 bind를 전체 주소로 넓히지 않습니다.
02
timeout 또는 간헐적 지연인 경우
네트워크 단절 외에 blocking command, 느린 fork·persistence, swap, 큰 client output buffer를 확인합니다. 재시도 횟수만 늘리면 부하가 증폭될 수 있습니다.
03
NOAUTH·NOPERM인 경우
자격증명이 틀렸거나 ACL user의 command/key pattern 권한이 부족할 수 있습니다. default user 활성화나 광범위 +@all로 우회하지 말고 최소 ACL을 검토합니다.
04
OOM 또는 eviction 증가인 경우
used_memory와 maxmemory뿐 아니라 mem_not_counted_for_evict, RSS, fragmentation, client buffer, persistence fork 여유를 함께 봅니다. 캐시와 영구 데이터는 eviction 정책을 다르게 선택해야 합니다.
FOLLOW THE FLOW
순서대로 확인하기
1
조회시스템을 변경하지 않는 확인 단계
1분 점검: 연결·역할·메모리 핵심 지표
APPROVED_REDIS_CLI는 TLS와 --askpass 또는 로컬 socket을 적용한 조직 표준 redis-cli 명령으로 바꿉니다. 비밀번호를 명령행에 직접 넣지 않습니다.
응답 확인
<APPROVED_REDIS_CLI> PING
서버·역할
<APPROVED_REDIS_CLI> INFO server
<APPROVED_REDIS_CLI> INFO replication
메모리 핵심 지표
<APPROVED_REDIS_CLI> INFO memory
eviction·연결 통계
<APPROVED_REDIS_CLI> INFO stats
<APPROVED_REDIS_CLI> INFO clients
결과 읽기
PING 실패는 연결/인증 분기입니다. PING 성공 뒤 used_memory가 maxmemory에 가깝거나 evicted_keys·rejected_connections가 증가하면 메모리/부하 분기로 이동합니다.
다음 판단
INFO 출력의 run_id, 주소, replica 정보는 외부 공유 전에 마스킹합니다.
2
조회시스템을 변경하지 않는 확인 단계
DNS·포트·TLS·ACL 연결 경로 확인
애플리케이션과 같은 호스트·네트워크에서 이름 해석과 TCP/TLS를 확인하고 Redis ACL identity를 읽습니다.
-k는 kernel transport만 조회하므로 -u redis-server.service와 결합하지 않습니다. 출력이 없다는 grep 종료 코드는 OOM 증거가 없다는 뜻일 수 있습니다.
persistence 상태
<APPROVED_REDIS_CLI> INFO persistence
client buffer 요약
<APPROVED_REDIS_CLI> CLIENT LIST TYPE NORMAL
client name·address가 포함됩니다. 외부 공유 전 마스킹하고 출력량이 큰 환경에서는 운영 도구의 집계 화면을 우선 사용합니다.
결과 읽기
RSS가 used_memory보다 큰 이유를 fragmentation·allocator·fork·client buffer로 나눕니다. rdb/aof 작업 실패나 OS OOM이면 eviction 정책만 바꿔서는 해결되지 않습니다.
다음 판단
백업·replica 상태, 여유 메모리, 데이터 성격을 확인한 뒤 용량·TTL·정책·client 제한 중 하나의 변경을 승인받습니다.
5
변경데이터·서비스 상태가 달라질 수 있는 단계
승인된 임시 메모리 한도·정책 적용과 검증
CONFIG SET은 즉시 동작을 바꾸며 정책에 따라 키가 제거될 수 있습니다. 기존 값과 백업·replica를 기록하고 데이터 소유자가 승인한 경우에만 한 분기씩 적용합니다.
변경 단계입니다. 실행 전 대상 이름과 경로, 서비스 중단 영향, 복구 방법을 다시 확인하세요.
변경 전 runtime 값 보관
<APPROVED_REDIS_CLI> CONFIG GET maxmemory
<APPROVED_REDIS_CLI> CONFIG GET maxmemory-policy
<APPROVED_REDIS_CLI> INFO memory
<APPROVED_REDIS_CLI> INFO persistence
A. 승인된 maxmemory 적용
<APPROVED_REDIS_CLI> CONFIG SET maxmemory <APPROVED_BYTES>
현재 used_memory와 복제·AOF/RDB·client buffer 여유를 뺀 호스트 메모리보다 낮게 잡지 않습니다. 값을 낮추면 즉시 eviction이 발생할 수 있습니다.
B. 승인된 eviction 정책 적용
<APPROVED_REDIS_CLI> CONFIG SET maxmemory-policy <APPROVED_POLICY>
A와 B를 한 번에 실행하지 않습니다. 권위 데이터에는 캐시용 eviction 정책을 적용하지 말고, 정책 변경은 이미 제거된 키를 복구하지 않습니다.
적용 후 추적
<APPROVED_REDIS_CLI> CONFIG GET maxmemory
<APPROVED_REDIS_CLI> CONFIG GET maxmemory-policy
<APPROVED_REDIS_CLI> INFO memory
<APPROVED_REDIS_CLI> INFO stats
결과 읽기
OOM 오류가 멈추고 latency·evicted_keys·keyspace hit/miss와 host available memory가 허용 범위여야 합니다. eviction이 예상보다 빠르면 즉시 추가 변경을 멈춥니다.
다음 판단
runtime 변경은 재시작 후 사라질 수 있으므로 검증 뒤 소스 관리 설정에 동일 값을 백업·리뷰 절차로 반영합니다. 실패하면 기록한 이전 CONFIG SET 값으로 원복하되 제거된 키는 백업·원본 시스템에서 복구하고, 재발 방지를 위해 메모리·eviction·client buffer·persistence 경보를 둡니다.