ERR invalid expire time in 'set' command: invalid expire time in SET
RedisWas bedeutet das?
An SET wurde eine ungültige Ablaufzeit übergeben (mit den Optionen EX/PX/EXAT/PXAT). Redis hat den Befehl abgelehnt, weil es keine sinnlose Lebensdauer wie null oder einen negativen Wert akzeptiert.
Ursache
Senden von 0 oder einem negativen Wert mit EX/PX, oder die Anwendung berechnet die Ablaufzeit falsch und erzeugt eine ungültige Zahl. Befehle wie SETEX/GETEX liefern diesen Fehler ebenso bei nicht positiven Dauern. Manche Client-Fehler entstehen durch Verwechseln von Sekunden und Millisekunden.
Lösung
Sende die Ablaufzeit immer als streng positive Ganzzahl; EX erwartet Sekunden, PX Millisekunden. Prüfe die Berechnung der Dauer in der Anwendung (sie darf keine negativen Werte oder null ergeben) und verwechsle die Einheiten nicht (Sekunden vs. Millisekunden). Um einen Key sofort zu löschen, nutze DEL/UNLINK, statt eine Ablaufzeit zu setzen. Übergib für absolute Zeitpunkte einen gültigen zukünftigen Unix-Zeitstempel an EXAT/PXAT.