HSETEX key [FNX | FXX] [EX seconds | PX milliseconds | EXAT unix-time-seconds | PXAT unix-time-milliseconds | KEEPTTL] FIELDS numfields field value [field value ...]
@write,
@hash,
@fast,
Set the value of one or more fields of a given hash key and optionally set their expiration time or time-to-live (TTL). If the given key already holds a value, it is overwritten and any previous TTLs associated with the key are discarded.
The HSETEX command supports a set of options:
FNX -- Only set the fields if none of them already exist.FXX -- Only set the fields if all of them already exist.EX seconds -- Set the specified expiration time in seconds.PX milliseconds -- Set the specified expiration time in milliseconds.EXAT unix-time-seconds -- Set the specified Unix time in seconds at which the fields will expire.PXAT unix-time-milliseconds -- Set the specified Unix time in milliseconds at which the fields will expire.KEEPTTL -- Retain the TTL associated with the fields.The EX, PX, EXAT, PXAT, and KEEPTTL options are mutually exclusive.
redis> HSETEX mykey EXAT 1740470400 FIELDS 2 field1 "Hello" field2 "World"
(integer) 1
redis> HTTL mykey FIELDS 2 field1 field2
1) (integer) 55627
2) (integer) 55627
redis> HSETEX mykey FNX EX 60 FIELDS 2 field1 "Hello" field2 "World"
(integer) 0
redis> HSETEX mykey FXX EX 60 KEEPTTL FIELDS 2 field1 "hello" field2 "world"
(error) ERR Only one of EX, PX, EXAT, PXAT or KEEPTTL arguments can be specified
redis> HSETEX mykey FXX KEEPTTL FIELDS 2 field1 "hello" field2 "world"
(integer) 1
redis> HTTL mykey FIELDS 2 field1 field2
1) (integer) 55481
2) (integer) 55481
| Redis Enterprise |
Redis Cloud |
Notes |
|---|---|---|
| ✅ Standard ✅ Active-Active |
✅ Standard ✅ Active-Active |
One of the following:
0 if no fields were set.1 if all the fields wereset.