Upstash Documentation

MSETNX

Set multiple keys if none exist.
2 min read

Use MSETNX to set several keys at once, but only if none of them already exists.

The command is all or nothing: if even a single key is present, nothing is written and the reply is 0; otherwise every key is written and the reply is 1. Since the check and the writes are one atomic step, it can be used to claim a whole group of related keys, so that a partially initialized state can never be observed.

Syntax#

Arguments#

ArgumentRequiredRepeatableDescription
<key> <value>YesYesKey and the value to store in it. Repeat to set several keys in one call.

Response#

The reply reports the result of the operation. Error replies have the same shape in RESP2 and RESP3 and are surfaced as exceptions by the SDKs below.

ProtocolReply
RESP2Integer: 1 if all keys were set, 0 if no key was set
RESP3Integer: 1 if all keys were set, 0 if no key was set
Note

Client libraries often decode bulk strings, maps, sets, and numeric strings into language-native values. The table describes the Redis wire reply.

Examples#

TCP examples use the TLS REDIS_URL from the Upstash console. REST examples use UPSTASH_REDIS_REST_URL and UPSTASH_REDIS_REST_TOKEN.

Redis CLI
@upstash/redis
upstash_redis
ioredis
node-redis
redis-py
go-redis
jedis
redis-rs