DBAtlas · データベース運用アトラス

ERR invalid expire time in 'set' command: invalid expire time in SET(SET の有効期限が無効)

Redis

意味

SET (EX/PX/EXAT/PXAT オプション付き) に無効な有効期限が与えられた。ゼロや負の値などの意味のない有効期間 (TTL) を受け付けないため、Redis はコマンドを拒否した。

原因

EX/PX で 0 または負の値を送信した、またはアプリケーションが有効期限を誤って計算して無効な数値を生成した。SETEX/GETEX などのコマンドも、正でない期間に対して同様にこのエラーを返す。一部のクライアントのバグは秒とミリ秒の混同に起因する。

対処方法

有効期限は常に厳密に正の整数で送信する。EX は秒、PX はミリ秒を想定する。アプリケーションで期間の計算を検証し (負/ゼロの結果にならないこと)、単位 (秒とミリ秒) を混同しない。キーを即座に削除するには、有効期限を設定するのではなく DEL/UNLINK を使用する。絶対時刻の場合は、EXAT/PXAT に有効な将来の Unix タイムスタンプを渡す。

DBAtlas で開く →

同じデータベースの他の項目