Back to Redis

HSETEX

content/commands/hsetex.md

latest2.5 KB
Original Source

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.

Options

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.

Example

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 Software and Redis Cloud compatibility

| Redis Software | Redis Cloud | <span style="min-width: 9em; display: table-cell">Notes</span> | |:----------------------|:-----------------|:------| | <span title="Supported">✅ Standard</span> <span title="Supported"><nobr>✅ Active-Active</nobr></span> | <span title="Supported">✅ Standard</span> <span title="Supported"><nobr>✅ Active-Active</nobr></span> | |

Return information

{{< multitabs id="hsetex-return-info" tab1="RESP2" tab2="RESP3" >}}

One of the following:

-tab-sep-

One of the following:

{{< /multitabs >}}