PEXPIRE key milliseconds [NX|XX|GT|LT]

This command works exactly like EXPIRE but the time to live of the key is specified in milliseconds instead of seconds.

*Options

The PEXPIRE command supports a set of options since Redis 7.0:

  • NX -- Set expiry only when the key has no expiry
  • XX -- Set expiry only when the key has an existing expiry
  • GT -- Set expiry only when the new expiry is greater than current one
  • LT -- Set expiry only when the new expiry is less than current one

A non-volatile key is treated as an infinite TTL for the purpose of GT and LT. The GT, LT and NX options are mutually exclusive.

*Return value

Integer reply, specifically:

  • 1 if the timeout was set.
  • 0 if the timeout was not set. e.g. key doesn't exist, or operation skipped due to the provided arguments.

*Examples

redis>  SET mykey "Hello"
"OK"
redis>  PEXPIRE mykey 1500
(integer) 1
redis>  TTL mykey
(integer) 2
redis>  PTTL mykey
(integer) 1499
redis>  PEXPIRE mykey 1000 XX
ERR ERR wrong number of arguments for 'pexpire' command
redis>  TTL mykey
(integer) 1
redis>  PEXPIRE mykey 1000 NX
ERR ERR wrong number of arguments for 'pexpire' command
redis>  TTL mykey
(integer) 1
redis> 

*History

  • >= 7.0: Added options: NX, XX, GT and LT.