`|Redis Documentation| `_
**MsetCommand: Contents**
`MSET \_key1\_ \_value1\_ \_key2\_ \_value2\_ ... \_keyN\_ \_valueN\_ (Redis > <#MSET%20_key1_%20_value1_%20_key2_%20_value2_%20...%20_keyN_%20_valueN_%20(Redis%20%3E>`_
`MSETNX \_key1\_ \_value1\_ \_key2\_ \_value2\_ ... \_keyN\_ \_valueN\_ (Redis > <#MSETNX%20_key1_%20_value1_%20_key2_%20_value2_%20...%20_keyN_%20_valueN_%20(Redis%20%3E>`_
`MSET Return value <#MSET%20Return%20value>`_
`MSETNX Return value <#MSETNX%20Return%20value>`_
MsetCommand
===========
#sidebar `StringCommandsSidebar `_
MSET \_key1\_ \_value1\_ \_key2\_ \_value2\_ ... \_keyN\_ \_valueN\_ (Redis >
=============================================================================
1.1) =
MSETNX \_key1\_ \_value1\_ \_key2\_ \_value2\_ ... \_keyN\_ \_valueN\_ (Redis >
===============================================================================
1.1) = *Time complexity: O(1) to set every key*
Set the the respective keys to the respective values. MSET will
replace oldvalues with new values, while MSETNX will not perform
any operation at alleven if just a single key already exists.
Because of this semantic MSETNX can be used in order to set
different keysrepresenting different fields of an unique logic
object in a way thatensures that either all the fields or none at
all are set.
Both MSET and MSETNX are atomic operations. This means that for
instanceif the keys A and B are modified, another client talking to
Redis can eithersee the changes to both A and B at once, or no
modification at all.
MSET Return value
-----------------
`Status code reply `_ Basically +OK as MSET can't
fail
MSETNX Return value
-------------------
`Integer reply `_, specifically:
::
1 if the all the keys were set
0 if no key was set (at least one key already existed)
.. |Redis Documentation| image:: redis.png