ERR invalid expire time in 'set' command: invalid expire time in SET
RedisЧто это значит?
В SET (с параметрами EX/PX/EXAT/PXAT) передано недопустимое время истечения. Redis отклонил команду, так как не принимает бессмысленное время жизни, например ноль или отрицательное значение.
Почему возникает?
Отправка 0 или отрицательного значения с EX/PX либо неверный расчёт истечения в приложении, дающий недопустимое число. Команды, такие как SETEX/GETEX, аналогично возвращают эту ошибку для неположительных длительностей. Некоторые ошибки клиентов возникают из-за путаницы секунд и миллисекунд.
Как исправить
Всегда отправляйте время истечения как строго положительное целое число; EX ожидает секунды, PX — миллисекунды. Проверяйте расчёт длительности в приложении (он не должен давать отрицательный/нулевой результат) и не путайте единицы (секунды и миллисекунды). Чтобы немедленно удалить ключ, используйте DEL/UNLINK вместо установки истечения. Для абсолютного времени передавайте в EXAT/PXAT допустимую будущую метку времени Unix.