캐시된 값이 오래되었거나 누락된 이유 조사
언제 쓸까: 사용자가 '프로필을 업데이트했는데 여전히 이전 이름이 표시됨'이라고 말하는 경우 — 캐시 무효화 문제일 가능성이 높습니다.
사전 조건
- 최소한 읽기 액세스 권한이 있는 Redis URL —
REDIS_URL=redis://:pw@host:6379/0
흐름
-
올바른 키 찾기
user:profile:42*과 일치하는 키를 스캔합니다 — 각 키의 타입과 TTL을 표시합니다.✓ 복사됨→ 일치하는 키 목록 -
저장된 값과 만료 시간 검사
user:profile:42에 대해 값을 GET하고 TTL을 표시합니다. 오래되었거나 예상과 다릅니까?✓ 복사됨→ 값 + TTL + 판단 결과 -
의도적으로 캐시 무효화해당 키(및 관련된 모든 리스트/세트 키)를 삭제하여 다음 읽기 시 앱이 재채우도록 합니다. 삭제를 확인합니다.✓ 복사됨→ DEL이 1 이상 반환됨
결과: 확인된 고정 캐시와 무엇이 오래되었고 왜 그런지에 대한 기록
함정
- 대용량 인스턴스에서
KEYS *를 사용하면 서버가 정지됨 — 항상 SCAN을 사용하세요 (서버가scan도구를 논블로킹 커서로 변환함);KEYS를 사용하지 마세요