Bird
Raised Fist0
Redisquery~10 mins

Adding and removing nodes in Redis - Step-by-Step Execution

Choose your learning style10 modes available
Concept Flow - Adding and removing nodes
Start Cluster
↓
Add Node Command
↓
Cluster Updates Node List
↓
Node Joins Cluster
↓
Cluster Balances Slots
↓
Node Added Successfully
↓
Remove Node Command
↓
Cluster Removes Node
↓
Cluster Rebalances Slots
↓
Node Removed Successfully
↓
End
This flow shows how nodes are added or removed from a Redis cluster, updating the cluster state and slot distribution.
Execution Sample
Redis
redis-cli --cluster add-node 192.168.1.2:7003 192.168.1.1:7000
redis-cli --cluster del-node 192.168.1.1:7000 <node-id>
Commands to add a new node to the cluster and then remove a node by its ID.
Execution Table
StepCommandCluster State ChangeSlots RebalancedResult
1add-node 192.168.1.2:7003 192.168.1.1:7000Node 7003 added to cluster node listNo slots yetNode joins cluster
2cluster updateCluster updates slot allocationSlots redistributed to include new nodeSlots balanced
3add-node completeCluster stable with new nodeSlots balancedNode added successfully
4del-node <node-id>Node removed from cluster node listSlots from removed node reassignedNode leaves cluster
5cluster updateCluster updates slot allocationSlots redistributed among remaining nodesSlots balanced
6del-node completeCluster stable without removed nodeSlots balancedNode removed successfully
7endNo further changesNo changesProcess complete
💡 Process ends after node is successfully added and then removed, cluster is stable.
Variable Tracker
VariableStartAfter Add 1After Add 2After Remove 1After Remove 2Final
Cluster Nodes[7000,7001,7002][7000,7001,7002,7003][7000,7001,7002,7003][7000,7001,7002,7003][7000,7001,7002][7000,7001,7002]
Slot AllocationBalanced among 3 nodesUnbalanced (new node no slots)Balanced among 4 nodesUnbalanced (removed node slots unassigned)Balanced among 3 nodesBalanced among 3 nodes
Key Moments - 3 Insights
Why does the cluster need to rebalance slots after adding a node?
Because slots must be distributed evenly among all nodes to balance the data load, as shown in execution_table rows 2 and 3.
What happens to the slots of a node when it is removed?
The slots assigned to the removed node are reassigned to remaining nodes to keep the cluster balanced, as seen in execution_table rows 4 and 5.
Can a node join the cluster without slots assigned initially?
Yes, initially the new node has no slots until the cluster rebalances, as shown in execution_table row 1.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution_table, at which step are slots first redistributed to include the new node?
AStep 1
BStep 2
CStep 3
DStep 4
💡 Hint
Check the 'Slots Rebalanced' column for when slots are redistributed.
According to variable_tracker, how many nodes are in the cluster after the node is removed?
A2 nodes
B4 nodes
C3 nodes
D1 node
💡 Hint
Look at 'Cluster Nodes' variable after 'After Remove 2' column.
If the cluster did not rebalance slots after removing a node, what would happen?
ASome slots would be unassigned
BNew nodes would be added automatically
CSlots would remain balanced
DCluster would shut down
💡 Hint
Refer to key_moments about slot reassignment after node removal.
Concept Snapshot
Redis Cluster node management:
- Add node with 'redis-cli --cluster add-node <new-node> <existing-node>'
- Remove node with 'redis-cli --cluster del-node <existing-node> <node-id>'
- Cluster updates node list and slot allocation after changes
- Slots must be balanced among nodes for data distribution
- Rebalancing happens automatically after add/remove
Full Transcript
This visual execution shows how Redis cluster nodes are added and removed. First, a new node is added using the add-node command, which updates the cluster's node list. Initially, the new node has no slots assigned. Then the cluster rebalances slots to distribute data evenly among all nodes. After the node is successfully added, a node can be removed using the del-node command by specifying its ID. The cluster removes the node from its list and reassigns the slots that belonged to the removed node to remaining nodes. This keeps the cluster balanced and stable. The variable tracker shows how the cluster nodes and slot allocation change step-by-step. Key moments clarify why rebalancing is necessary and what happens to slots during node removal. The quiz questions help reinforce understanding by referencing the execution steps and variable changes.

Practice

(1/5)
1. What is the primary purpose of adding nodes to a Redis cluster?
easy
A. To increase the cluster's capacity and distribute data
B. To delete all data from the cluster
C. To backup the cluster data
D. To change the Redis version on all nodes

Solution

  1. Step 1: Understand what adding nodes means

    Adding nodes means increasing the number of servers in the cluster to share the data load.
  2. Step 2: Identify the effect of adding nodes

    More nodes mean more capacity and better data distribution across the cluster.
  3. Final Answer:

    To increase the cluster's capacity and distribute data -> Option A
  4. Quick Check:

    Adding nodes = More capacity and distribution [OK]
Hint: Adding nodes grows cluster capacity and data spread [OK]
Common Mistakes:
  • Thinking adding nodes deletes data
  • Confusing adding nodes with backup
  • Assuming adding nodes upgrades Redis version
2. Which of the following is the correct syntax to add a node to a Redis cluster using redis-cli?
easy
A. redis-cli --cluster add-node :<port> :<port>
B. redis-cli --cluster remove-node :<port>
C. redis-cli --cluster create-node :<port>
D. redis-cli --cluster add :<port>

Solution

  1. Step 1: Recall the command to add a node

    The correct command uses --cluster add-node followed by the new node and an existing node in the cluster.
  2. Step 2: Match the syntax

    redis-cli --cluster add-node :<port> :<port> matches the correct syntax: redis-cli --cluster add-node new-node existing-node.
  3. Final Answer:

    redis-cli --cluster add-node <new-node-ip>:<port> <existing-node-ip>:<port> -> Option A
  4. Quick Check:

    Correct add-node syntax = redis-cli --cluster add-node :<port> :<port> [OK]
Hint: Add node command uses --cluster add-node with new and existing nodes [OK]
Common Mistakes:
  • Using remove-node instead of add-node
  • Using create-node which does not exist
  • Omitting existing node IP in command
3. Given the command redis-cli --cluster del-node 192.168.1.5:7000 07c37dfeb2352e03a5a1e1f3a2f8b9a1f2e3d4c5, what will happen?
medium
A. A new node will be added at 192.168.1.5:7000
B. The node at 192.168.1.5:7000 will be removed from the cluster
C. The cluster will be created with the given node ID
D. The command will fail due to wrong syntax

Solution

  1. Step 1: Understand the del-node command

    The command redis-cli --cluster del-node removes a node from the cluster using its IP and node ID.
  2. Step 2: Analyze the given command

    The command specifies the node IP and the node ID, so it will remove that node from the cluster.
  3. Final Answer:

    The node at 192.168.1.5:7000 will be removed from the cluster -> Option B
  4. Quick Check:

    del-node removes specified node [OK]
Hint: del-node removes node by IP and node ID [OK]
Common Mistakes:
  • Confusing del-node with add-node
  • Thinking it adds a node
  • Assuming command syntax is incorrect
4. You run redis-cli --cluster add-node 192.168.1.10:7003 192.168.1.11:7000 but get an error. What is the most likely cause?
medium
A. The new node is already part of the cluster
B. The existing node IP is incorrect
C. The command should be --cluster del-node instead
D. Redis server is not running on the new node

Solution

  1. Step 1: Check prerequisites for adding a node

    The new node must be running Redis and reachable for the add-node command to succeed.
  2. Step 2: Identify common causes of add-node failure

    If Redis is not running on the new node, the command will fail because it cannot connect.
  3. Final Answer:

    Redis server is not running on the new node -> Option D
  4. Quick Check:

    New node must run Redis to add [OK]
Hint: New node must be running Redis before adding [OK]
Common Mistakes:
  • Assuming IP typo without checking server status
  • Confusing add-node with del-node command
  • Ignoring that Redis must run on new node
5. You want to remove a node from a Redis cluster but keep its data safe. Which sequence of commands should you use?
hard
A. Use redis-cli --cluster del-node then backup data manually
B. Directly stop the Redis server on the node and remove it
C. Use redis-cli --cluster reshard to move slots, then redis-cli --cluster del-node
D. Use redis-cli --cluster add-node to replace the node

Solution

  1. Step 1: Understand data safety when removing nodes

    Removing a node without moving its data causes data loss.
  2. Step 2: Use reshard to move data slots

    Resharding moves the data slots from the node to be removed to other nodes safely.
  3. Step 3: Remove the node after resharding

    After data is moved, del-node safely removes the node without data loss.
  4. Final Answer:

    Use redis-cli --cluster reshard to move slots, then redis-cli --cluster del-node -> Option C
  5. Quick Check:

    Reshard then del-node = safe removal [OK]
Hint: Reshard slots before removing node to keep data safe [OK]
Common Mistakes:
  • Removing node without moving data first
  • Stopping server directly causing data loss
  • Confusing add-node with removal process
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard