--- acl_categories: - '@write' - '@set' - '@fast' arguments: - display_text: source key_spec_index: 0 name: source type: key - display_text: destination key_spec_index: 1 name: destination type: key - display_text: member name: member type: string arity: 4 categories: - docs - develop - stack - oss - rs - rc - oss - kubernetes - clients command_flags: - write - fast complexity: O(1) description: Moves a member from one set to another. group: set hidden: false key_specs: - RW: true access: true begin_search: spec: index: 1 type: index delete: true find_keys: spec: keystep: 1 lastkey: 0 limit: 0 type: range - RW: true begin_search: spec: index: 2 type: index find_keys: spec: keystep: 1 lastkey: 0 limit: 0 type: range insert: true linkTitle: SMOVE railroad_diagram: /images/railroad/smove.svg since: 1.0.0 summary: Moves a member from one set to another. syntax_fmt: SMOVE source destination member title: SMOVE --- {{< note >}} This command's behavior varies in clustered Redis environments. See the [multi-key operations]({{< relref "/develop/using-commands/multi-key-operations" >}}) page for more information. {{< /note >}} Move `member` from the set at `source` to the set at `destination`. This operation is atomic. In every given moment the element will appear to be a member of `source` **or** `destination` for other clients. If the source set does not exist or does not contain the specified element, no operation is performed and `0` is returned. Otherwise, the element is removed from the source set and added to the destination set. When the specified element already exists in the destination set, it is only removed from the source set. ## Examples {{% redis-cli %}} SADD myset "one" SADD myset "two" SADD myotherset "three" SMOVE myset myotherset "two" SMEMBERS myset SMEMBERS myotherset {{% /redis-cli %}} ## Redis Software and Redis Cloud compatibility | Redis
Software | Redis
Cloud | Notes | |:----------------------|:-----------------|:------| | ✅ Standard
✅ Active-Active | ✅ Standard
✅ Active-Active | | ## Return information {{< multitabs id="smove-return-info" tab1="RESP2" tab2="RESP3" >}} One of the following: * [Integer reply](../../develop/reference/protocol-spec#integers): `1` if the element is moved. * [Integer reply](../../develop/reference/protocol-spec#integers): `0` if the element is not a member of _source_ and no operation was performed. -tab-sep- One of the following: * [Integer reply](../../develop/reference/protocol-spec#integers): `1` if the element is moved. * [Integer reply](../../develop/reference/protocol-spec#integers): `0` if the element is not a member of _source_ and no operation was performed. {{< /multitabs >}}