Removes a node from the nodes table.
CLUSTER
FORGET
node-id
The command is used in order to remove a node, specified via its node ID, from the set of known nodes of the Valkey Cluster node receiving the command. In other words the specified node is removed from the nodes table of the node receiving the command.
Because when a given node is part of the cluster, all the other nodes
participating in the cluster knows about it, in order for a node to be
completely removed from a cluster, the CLUSTER FORGET
command must be sent to all the remaining nodes, regardless of the fact
they are primaries or replicas.
However the command cannot simply drop the node from the internal node table of the node receiving the command, it also implements a ban-list, not allowing the same node to be added again as a side effect of processing the gossip section of the heartbeat packets received from other nodes.
In the following example we’ll show why the command must not just remove a given node from the nodes table, but also prevent it for being re-inserted again for some time.
Let’s assume we have four nodes, A, B, C and D. In order to end with just a three nodes cluster A, B, C we may follow these steps:
CLUSTER FORGET D
.As you can see in this way removing a node is fragile, we need to
send CLUSTER FORGET
commands to all the nodes ASAP hoping
there are no gossip sections processing in the meantime. Because of this
problem the command implements a ban-list with an expire time for each
entry.
So what the command really does is:
This way we have a 60 second window to inform all the nodes in the cluster that we want to remove a node.
The command does not succeed and returns an error in the following cases:
Simple string
reply: OK
if the command was executed successfully.
Otherwise an error is returned.
O(1)
@admin @dangerous @slow
ASKING, CLUSTER, CLUSTER ADDSLOTS, CLUSTER ADDSLOTSRANGE, CLUSTER BUMPEPOCH, CLUSTER COUNT-FAILURE-REPORTS, CLUSTER COUNTKEYSINSLOT, CLUSTER DELSLOTS, CLUSTER DELSLOTSRANGE, CLUSTER FAILOVER, CLUSTER FLUSHSLOTS, CLUSTER GETKEYSINSLOT, CLUSTER HELP, CLUSTER INFO, CLUSTER KEYSLOT, CLUSTER LINKS, CLUSTER MEET, CLUSTER MYID, CLUSTER MYSHARDID, CLUSTER NODES, CLUSTER REPLICAS, CLUSTER REPLICATE, CLUSTER RESET, CLUSTER SAVECONFIG, CLUSTER SET-CONFIG-EPOCH, CLUSTER SETSLOT, CLUSTER SHARDS, CLUSTER SLOT-STATS, CLUSTER SLOTS, READONLY, READWRITE.