content/commands/blmove.md
{{< 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 >}}
BLMOVE is the blocking variant of [LMOVE]({{< relref "/commands/lmove" >}}).
When source contains elements, this command behaves exactly like [LMOVE]({{< relref "/commands/lmove" >}}).
When used inside a [MULTI]({{< relref "/commands/multi" >}})/[EXEC]({{< relref "/commands/exec" >}}) block or a Lua script, this command behaves exactly like [LMOVE]({{< relref "/commands/lmove" >}}).
When source is empty, Redis will block the connection until another client
pushes to it or until timeout (a double value specifying the maximum number of seconds to block) is reached.
A timeout of zero can be used to block indefinitely.
This command comes in place of the now deprecated [BRPOPLPUSH]({{< relref "/commands/brpoplpush" >}}). Doing
BLMOVE RIGHT LEFT is equivalent.
See [LMOVE]({{< relref "/commands/lmove" >}}) for more information.
Please see the pattern description in the [LMOVE]({{< relref "/commands/lmove" >}}) documentation.
Please see the pattern description in the [LMOVE]({{< relref "/commands/lmove" >}}) documentation.
| Redis Software | Redis Cloud | <span style="min-width: 9em; display: table-cell">Notes</span> | |:----------------------|:-----------------|:------| | <span title="Supported">✅ Standard</span> <span title="Supported"><nobr>✅ Active-Active</nobr></span> | <span title="Supported">✅ Standard</span> <span title="Supported"><nobr>✅ Active-Active</nobr></span> | |
{{< multitabs id="blmove-return-info" tab1="RESP2" tab2="RESP3" >}}
One of the following:
-tab-sep-
One of the following:
{{< /multitabs >}}