redis
글 3편, 메모 0개
Redis 메모리 90% 알림 — BGSAVE fork, 스왑, TTL 없는 키
Redis 서버에서 OS 메모리 90% 알림이 왔습니다. 인스턴스 둘의 상한 합이 물리 메모리와 거의 같았고, BGSAVE fork 가 그 위를 넘기면서 스왑으로 밀렸습니다. 상한을 채우고 있던 건 세션이 아니라 TTL 없는 토큰 키였습니다.
Redis SETNX 분산 락 — TTL·소유권·원자적 해제
여러 Pod가 같은 스케줄 작업을 중복 실행하지 않게 SETNX로 락을 겁니다. 그런데 TTL 없으면 데드락, 값이 단순하면 남의 락을 풀고, GET·DEL 사이엔 경합이 생깁니다.
Redis ENOTFOUND — 원래 항상 나던 에러
파드가 뜰 때마다 Redis ENOTFOUND가 로그에 찍혔습니다. 그런데 서비스는 멀쩡했습니다. 삭제된 지 몇 달 된 ElastiCache 엔드포인트를 앱이 초기화 때 먼저 찾고 있었습니다.