Bird
Raised Fist0
Redisquery~10 mins

Cluster architecture in Redis - Step-by-Step Execution

Choose your learning style10 modes available
Concept Flow - Cluster architecture
Client calculates key slot
↓
Client sends command to correct node
↓
Node processes command
↓
Return result to client
The client calculates the slot for the key, determines the correct node, sends the command directly there, and receives the result.
Execution Sample
Redis
SET user:1 "Alice"
GET user:1
DEL user:1
Commands to set, get, and delete a key in a Redis cluster, showing routing and execution.
Execution Table
StepActionKeySlot CalculationNode ChosenResult
1Client sends SET commanduser:1Calculate slot for 'user:1' (e.g. slot 1234)Node A (owns slot 1234)Sent to Node A
2Node A executes SETuser:1Slot 1234Node AOK
3Client sends GET commanduser:1Calculate slot for 'user:1' (slot 1234)Node ASent to Node A
4Node A executes GETuser:1Slot 1234Node A"Alice"
5Client sends DEL commanduser:1Calculate slot for 'user:1' (slot 1234)Node ASent to Node A
6Node A executes DELuser:1Slot 1234Node A1 (deleted)
7Client sends GET commanduser:1Calculate slot for 'user:1' (slot 1234)Node ASent to Node A
8Node A executes GETuser:1Slot 1234Node A(nil)
9End of commandsNo more commands to process
💡 All commands processed; cluster routes commands based on key slots to correct nodes.
Variable Tracker
VariableStartAfter Step 2After Step 4After Step 6After Step 8
user:1does not exist"Alice""Alice"deleteddoes not exist
Key Moments - 2 Insights
Why does the client need to calculate the slot before sending the command?
The client must calculate the slot to send the command directly to the right node (see execution_table steps 1, 3, 5).
What happens if the key does not exist on the node?
The node returns nil or 0 depending on the command, as shown in step 8 where GET returns (nil) after the key was deleted in step 6.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution_table at step 4, what is the result of the GET command?
AOK
B"Alice"
C1 (deleted)
D(nil)
💡 Hint
Check the 'Result' column at step 4 in the execution_table.
At which step does the key 'user:1' get deleted from the cluster?
AStep 6
BStep 4
CStep 2
DStep 8
💡 Hint
Look at the 'Action' and 'Result' columns in the execution_table to find when DEL is executed.
If the client did not calculate the slot, what would happen?
AThe command would be ignored
BThe cluster would automatically find the correct node without issue
CThe client would receive an error immediately
DThe command would be routed to the wrong node and fail
💡 Hint
Refer to the concept_flow showing the importance of slot calculation before sending to the node.
Concept Snapshot
Redis Cluster distributes data by key slots.
Client calculates slot from key.
Slot determines which node handles the command.
Commands are sent directly to the correct node.
Nodes execute commands and return results.
This ensures data is distributed and accessible.
Full Transcript
In Redis Cluster architecture, when a client sends a command involving a key, it first calculates the key's slot. This slot number determines which node in the cluster owns the data for that key. The client then sends the command directly to that node. The node executes the command and returns the result to the client. For example, setting a key 'user:1' involves calculating its slot, routing the SET command to the correct node, storing the value, and confirming success. Later GET and DEL commands follow the same routing process. If the key is deleted, subsequent GET commands return nil. This process ensures efficient data distribution and retrieval across the cluster.

Practice

(1/5)
1.

What is the main purpose of Redis Cluster architecture?

easy
A. To backup data to external storage every minute
B. To store data only on a single server for simplicity
C. To encrypt data automatically on all nodes
D. To split data across multiple servers for better performance and fault tolerance

Solution

  1. Step 1: Understand Redis Cluster design

    Redis Cluster splits data across multiple servers using hash slots to distribute load.
  2. Step 2: Identify the main benefit

    This splitting improves speed, storage capacity, and fault tolerance by avoiding a single point of failure.
  3. Final Answer:

    To split data across multiple servers for better performance and fault tolerance -> Option D
  4. Quick Check:

    Redis Cluster = Data distribution + fault tolerance [OK]
Hint: Redis Cluster splits data for speed and safety [OK]
Common Mistakes:
  • Thinking Redis Cluster stores data on one server
  • Confusing cluster with encryption feature
  • Assuming cluster only handles backups
2.

Which command line option is required to start a Redis node with cluster enabled?

redis-server --port 7000 --cluster-enabled ???

easy
A. yes
B. true
C. on
D. enable

Solution

  1. Step 1: Recall Redis cluster start syntax

    To enable cluster mode, the option is --cluster-enabled yes.
  2. Step 2: Confirm correct boolean value

    Redis expects 'yes' or 'no' for this flag, not 'true', 'on', or 'enable'.
  3. Final Answer:

    yes -> Option A
  4. Quick Check:

    Cluster enabled flag = yes [OK]
Hint: Use 'yes' to enable cluster mode in Redis [OK]
Common Mistakes:
  • Using 'true' or 'on' instead of 'yes'
  • Typing 'enable' which is invalid
  • Omitting the cluster-enabled option
3.

Given a Redis Cluster with 3 nodes, each handling 5461 hash slots, what happens if one node fails?

Choose the correct behavior:

medium
A. All data on the failed node is lost permanently
B. The cluster stops working until the failed node is back
C. The cluster continues working if replicas exist for the failed node's slots
D. The cluster automatically merges all slots to remaining nodes

Solution

  1. Step 1: Understand Redis Cluster fault tolerance

    Redis Cluster uses replicas to provide fault tolerance. If a node fails, replicas can take over its hash slots.
  2. Step 2: Analyze failure impact

    If replicas exist, the cluster continues working by promoting replicas. Without replicas, cluster availability is affected.
  3. Final Answer:

    The cluster continues working if replicas exist for the failed node's slots -> Option C
  4. Quick Check:

    Node failure + replicas = cluster stays up [OK]
Hint: Replicas keep cluster alive if a node fails [OK]
Common Mistakes:
  • Assuming cluster stops immediately on node failure
  • Thinking data is lost without replicas
  • Believing cluster merges slots automatically
4.

Identify the error in this Redis cluster node start command:

redis-server --port 7001 --cluster-enabled yes --cluster-config-file nodes-7001.conf --cluster-node-timeout 5000 --cluster-announce-ip 192.168.1.10 --cluster-announce-port 7001 --cluster-announce-bus-port 17001 --cluster-enabled no
medium
A. The command has conflicting cluster-enabled flags
B. The port number is invalid
C. The cluster-config-file name is incorrect
D. The cluster-node-timeout value is too low

Solution

  1. Step 1: Review cluster-enabled flags

    The command has two --cluster-enabled flags: one set to 'yes' and another to 'no'. This is conflicting.
  2. Step 2: Understand impact of conflicting flags

    Redis will use the last flag, disabling cluster mode, which contradicts other cluster options.
  3. Final Answer:

    The command has conflicting cluster-enabled flags -> Option A
  4. Quick Check:

    Conflicting flags cause cluster mode error [OK]
Hint: Avoid multiple cluster-enabled flags in one command [OK]
Common Mistakes:
  • Ignoring repeated flags causing conflicts
  • Assuming port 7001 is invalid
  • Thinking config file name causes error
5.

You want to create a Redis Cluster with 6 nodes: 3 masters and 3 replicas. Which of the following is the correct approach to assign hash slots and replicas?

hard
A. Assign all hash slots to replicas only; masters hold no slots
B. Assign all 16384 hash slots evenly to 3 masters; assign each replica to a different master node
C. Assign hash slots randomly to all 6 nodes without replicas
D. Assign hash slots only to one master; others act as replicas

Solution

  1. Step 1: Understand hash slot distribution

    Redis Cluster has 16384 hash slots. These should be evenly split among master nodes for balanced load.
  2. Step 2: Assign replicas properly

    Each replica should be linked to a different master to provide fault tolerance and avoid single points of failure.
  3. Final Answer:

    Assign all 16384 hash slots evenly to 3 masters; assign each replica to a different master node -> Option B
  4. Quick Check:

    Slots evenly on masters + replicas assigned = correct cluster setup [OK]
Hint: Distribute slots evenly on masters; assign replicas per master [OK]
Common Mistakes:
  • Assigning slots to replicas instead of masters
  • Not linking replicas to masters
  • Putting all slots on one master only
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