--- acl_categories: - '@write' - '@string' - '@slow' arguments: - display_text: numkeys name: numkeys type: integer - arguments: - display_text: key key_spec_index: 0 name: key type: key - display_text: value name: value type: string multiple: true name: data type: block - arguments: - display_text: nx name: nx token: NX type: pure-token - display_text: xx name: xx token: XX type: pure-token name: condition optional: true type: oneof - arguments: - display_text: seconds name: seconds token: EX type: integer - display_text: milliseconds name: milliseconds token: PX type: integer - display_text: unix-time-seconds name: unix-time-seconds token: EXAT type: unix-time - display_text: unix-time-milliseconds name: unix-time-milliseconds token: PXAT type: unix-time - display_text: keepttl name: keepttl token: KEEPTTL type: pure-token name: expiration optional: true type: oneof arity: -4 categories: - docs - develop - stack - oss - rs - rc - oss - kubernetes - clients command_flags: - write - denyoom - movablekeys complexity: O(N) where N is the number of keys to set. description: Atomically sets multiple string keys with a shared expiration in a single operation. Supports flexible argument parsing where condition and expiration flags can appear in any order. group: string hidden: false hints: - request_policy:multi_shard - response_policy:all_succeeded key_specs: - OW: true begin_search: spec: index: 1 type: index find_keys: spec: firstkey: 1 keynumidx: 0 keystep: 2 type: keynum update: true linkTitle: MSETEX railroad_diagram: /images/railroad/msetex.svg since: 8.4.0 summary: Atomically sets multiple string keys with a shared expiration in a single operation. syntax_fmt: "MSETEX numkeys key value [key value ...] [NX | XX] [EX\_seconds |\n \ \ PX\_milliseconds | EXAT\_unix-time-seconds |\n PXAT\_unix-time-milliseconds |\ \ KEEPTTL]" title: MSETEX --- Atomically sets multiple string keys with an optional shared expiration in a single operation. ## Required arguments
numkeys The number of keys being set.
key value [key value ...] A series of key/value pairs.
## Optional arguments
condition and expiration flags The `MSETEX` command supports a set of options that modify its behavior: * `NX` -- Set the keys and their expiration time only if none of the specified keys exist. * `XX` -- Set the keys and their expiration time only if all of the specified keys already exist. * `EX seconds` -- Set the specified expiration time in seconds (a positive integer). * `PX milliseconds` -- Set the specified expiration time in milliseconds (a positive integer). * `EXAT unix-time-seconds` -- Set the specified Unix time in seconds (a positive integer) at which the key(s) will expire. * `PXAT unix-time-milliseconds` -- Set the specified Unix time in milliseconds (a positive integer) at which the key(s) will expire. * `KEEPTTL` -- Retain the time to live associated with the keys.
## Redis Software and Redis Cloud compatibility | Redis
Software | Redis
Cloud | Notes | |:----------------------|:-----------------|:------| | ❌ Standard
❌ Active-Active | ❌ Standard
❌ Active-Active | | ## Return information {{< multitabs id="return-info" tab1="RESP2" tab2="RESP3" >}} [Integer reply]({{< relref "/develop/reference/protocol-spec#integers" >}}): 0 if none of the keys were set; 1 if all of the keys were set. -tab-sep- [Integer reply]({{< relref "/develop/reference/protocol-spec#integers" >}}): 0 if none of the keys were set; 1 if all of the keys were set. {{< /multitabs >}}