ERR invalid expire time in 'set' command: invalid expire time in SET
Redis의미
SET(EX/PX/EXAT/PXAT 옵션)에 유효하지 않은 만료 시간을 지정했다. Redis는 0이나 음수 같은 의미 없는 TTL을 받지 않으므로 명령을 거부했다.
원인
EX/PX로 0이나 음수 값을 보냈거나, 애플리케이션이 만료 시간을 잘못 계산해 유효하지 않은 숫자를 생성한 경우다. SETEX/GETEX 같은 명령도 양수가 아닌 기간에 대해 마찬가지로 이 오류를 반환한다. 일부 클라이언트 버그는 초와 밀리초를 혼동해서 생긴다.
해결 방법
만료 시간은 항상 0보다 큰 정수로 보낸다. EX는 초, PX는 밀리초를 기대한다. 애플리케이션에서 기간 계산을 검증하고(음수/0 결과가 나오면 안 된다) 단위(초 vs. 밀리초)를 혼동하지 않는다. 키를 즉시 삭제하려면 만료 시간을 설정하는 대신 DEL/UNLINK를 사용한다. 절대 시간은 EXAT/PXAT에 유효한 미래 Unix 타임스탬프를 전달한다.