---
acl_categories:
- '@write'
- '@hash'
- '@fast'
arguments:
- display_text: key
key_spec_index: 0
name: key
type: key
- arguments:
- display_text: field
name: field
type: string
- display_text: value
name: value
type: string
multiple: true
name: data
type: block
arity: -4
categories:
- docs
- develop
- stack
- oss
- rs
- rc
- oss
- kubernetes
- clients
command_flags:
- write
- denyoom
- fast
complexity: O(N) where N is the number of fields being set.
deprecated_since: 4.0.0
description: Sets the values of multiple fields.
doc_flags:
- deprecated
group: hash
hidden: false
key_specs:
- RW: true
begin_search:
spec:
index: 1
type: index
find_keys:
spec:
keystep: 1
lastkey: 0
limit: 0
type: range
update: true
linkTitle: HMSET
railroad_diagram: /images/railroad/hmset.svg
replaced_by: '`HSET` with multiple field-value pairs'
since: 2.0.0
summary: Sets the values of multiple fields.
syntax_fmt: HMSET key field value [field value ...]
title: HMSET
---
Sets the specified fields to their respective values in the hash stored at
`key`.
This command overwrites any specified fields already existing in the hash.
If `key` does not exist, a new key holding a hash is created.
## Examples
{{% redis-cli %}}
HMSET myhash field1 "Hello" field2 "World"
HGET myhash field1
HGET myhash field2
{{% /redis-cli %}}
## Redis Software and Redis Cloud compatibility
| Redis
Software | Redis
Cloud | Notes |
|:----------------------|:-----------------|:------|
| ✅ Standard
✅ Active-Active | ✅ Standard
✅ Active-Active | Deprecated as of Redis v4.0.0. |
## Return information
{{< multitabs id="hmset-return-info"
tab1="RESP2"
tab2="RESP3" >}}
[Simple string reply](../../develop/reference/protocol-spec#simple-strings): `OK`.
-tab-sep-
[Simple string reply](../../develop/reference/protocol-spec#simple-strings): `OK`.
{{< /multitabs >}}