DBAtlas · Атлас эксплуатации баз данных

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.

Открыть в DBAtlas →

Ещё по этой СУБД