HEXPIREAT key unix-time-seconds [NX | XX | GT | LT] FIELDS numfields field [field ...]
@write,
@hash,
@fast,
HEXPIREAT has the same effect and semantics as HEXPIRE, but instead of
specifying the number of seconds for the TTL (time to live), it takes
an absolute Unix timestamp in seconds since Unix epoch. A
timestamp in the past will delete the field immediately.
For the specific semantics of the command, see HEXPIRE.
The HEXPIREAT command supports a set of options:
NX -- For each specified field, set expiration only when the field has no expiration.XX -- For each specified field, set expiration only when the field has an existing expiration.GT -- For each specified field, set expiration only when the new expiration is greater than current one.LT -- For each specified field, set expiration only when the new expiration is less than current one.A non-volatile key is treated as an infinite TTL for the purposes of GT and LT.
The NS, XX, GT, and LT options are mutually exclusive.
redis> HSET mykey field1 "hello" field2 "world"
(integer) 2
redis> HEXPIREAT mykey 1715704971 FIELDS 2 field1 field2
1) (integer) 1
2) (integer) 1
redis> HTTL mykey FIELDS 2 field1 field2
1) (integer) 567
2) (integer) 567
| Redis Enterprise |
Redis Cloud |
Notes |
|---|---|---|
| ✅ Standard ✅ Active-Active |
✅ Standard ✅ Active-Active |
One of the following:
-2 if no such field exists in the provided hash key, or the provided key does not exist.0 if the specified NX, XX, GT, or LT condition has not been met.1 if the expiration time was set/updated.2 when HEXPIRE or HPEXPIRE is called with 0 seconds or milliseconds, or when HEXPIREAT or HPEXPIREAT is called with a past Unix time in seconds or milliseconds.