Bird
Raised Fist0
Redisquery~20 mins

Resharding hash slots in Redis - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Redis Cluster Resharding Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ query_result
intermediate
2:00remaining
What is the output of the resharding command status?
After initiating a resharding operation in Redis Cluster, you run the command CLUSTER RESHARDING STATUS. What output do you expect if the resharding is currently moving slots?
AAn error message stating the command is unknown
BAn empty list indicating no resharding in progress
CA list showing the number of slots moved and the total slots to move
DA string with the cluster node IDs only
Attempts:
2 left
💡 Hint
Think about what information you want to see during resharding progress.
🧠 Conceptual
intermediate
2:00remaining
Why is resharding hash slots necessary in Redis Cluster?
Which of the following best explains why you would perform resharding of hash slots in a Redis Cluster?
ATo encrypt data stored in hash slots
BTo clear all data from the cluster quickly
CTo upgrade Redis version on all nodes simultaneously
DTo rebalance data when adding or removing nodes to maintain even load
Attempts:
2 left
💡 Hint
Think about cluster scaling and data distribution.
📝 Syntax
advanced
2:00remaining
Which command syntax correctly moves 50 hash slots from one node to another?
You want to move 50 hash slots from node A to node B in a Redis Cluster. Which command syntax is correct?
Aredis-cli --cluster reshard <cluster_ip>:<port> --slots 50 --from <nodeA_id> --to <nodeB_id>
BCLUSTER RESHARD --slots 50 --from <nodeA_id> --to <nodeB_id>
CCLUSTER SETSLOT 50 NODE <nodeB_id>
DCLUSTER MOVE 50 FROM <nodeA_id> TO <nodeB_id>
Attempts:
2 left
💡 Hint
Consider the official redis-cli cluster management commands.
🔧 Debug
advanced
2:00remaining
Why does the resharding command fail with 'MOVED' error?
You run the resharding command to move slots but get an error: MOVED 1234 10.0.0.2:7002. What is the most likely cause?
AThe Redis version is incompatible with resharding
BThe slots you want to move are already moved
CYou are connected to a node that does not own the slots you want to move
DThe cluster is down and cannot process commands
Attempts:
2 left
💡 Hint
The MOVED error indicates a redirection in Redis Cluster.
❓ optimization
expert
3:00remaining
How to minimize downtime during resharding in a large Redis Cluster?
You have a large Redis Cluster and want to reshard hash slots with minimal downtime. Which approach is best?
AStop all clients, move all slots at once, then restart clients
BUse the redis-cli reshard command with small batch sizes and monitor progress
CManually edit cluster configuration files to reassign slots instantly
DRestart all nodes sequentially during resharding
Attempts:
2 left
💡 Hint
Think about gradual data movement and client availability.

Practice

(1/5)
1. What is the main purpose of resharding hash slots in a Redis cluster?
easy
A. To balance data evenly across cluster nodes
B. To delete unused keys from the database
C. To backup data to an external storage
D. To increase the size of each hash slot

Solution

  1. Step 1: Understand hash slots in Redis cluster

    Redis cluster divides data into 16384 hash slots distributed among nodes.
  2. Step 2: Purpose of resharding

    Resharding moves hash slots to balance load and storage evenly across nodes.
  3. Final Answer:

    To balance data evenly across cluster nodes -> Option A
  4. Quick Check:

    Resharding = balance data [OK]
Hint: Resharding means redistributing data evenly [OK]
Common Mistakes:
  • Thinking resharding deletes keys
  • Confusing resharding with backup
  • Assuming hash slot size changes
2. Which Redis command is used to mark a hash slot as migrating during resharding?
easy
A. CLUSTER ADDSLOTS <slot>
B. CLUSTER SETSLOT <slot> MIGRATING <node_id>
C. CLUSTER DELSLOTS <slot>
D. CLUSTER INFO

Solution

  1. Step 1: Identify commands related to slot state changes

    CLUSTER SETSLOT command changes slot ownership or state.
  2. Step 2: Marking migrating slot

    Using MIGRATING flag with CLUSTER SETSLOT marks slot as migrating from a node.
  3. Final Answer:

    CLUSTER SETSLOT <slot> MIGRATING <node_id> -> Option B
  4. Quick Check:

    MIGRATING slot = CLUSTER SETSLOT MIGRATING [OK]
Hint: Use CLUSTER SETSLOT with MIGRATING to mark slot move [OK]
Common Mistakes:
  • Using ADDSLOTS or DELSLOTS instead of SETSLOT
  • Confusing INFO command with slot state change
  • Omitting node_id in command
3. Given the following commands during resharding, what is the correct order to migrate a hash slot 5000 from node A to node B?
1. CLUSTER SETSLOT 5000 MIGRATING nodeB_id
2. MIGRATE nodeB_ip 6379 "" 0 5000
3. CLUSTER SETSLOT 5000 IMPORTING nodeA_id
4. CLUSTER SETSLOT 5000 NODE nodeB_id
medium
A. 1, 2, 3, 4
B. 3, 1, 2, 4
C. 2, 1, 3, 4
D. 1, 3, 2, 4

Solution

  1. Step 1: Mark slot as migrating on source node

    Use CLUSTER SETSLOT 5000 MIGRATING nodeB_id to mark slot migrating from node A.
  2. Step 2: Mark slot as importing on destination node

    Use CLUSTER SETSLOT 5000 IMPORTING nodeA_id on node B to accept keys.
  3. Step 3: Migrate keys with MIGRATE command

    Use MIGRATE to move keys of slot 5000 from node A to node B.
  4. Step 4: Assign slot ownership to destination node

    Use CLUSTER SETSLOT 5000 NODE nodeB_id to finalize ownership.
  5. Final Answer:

    1, 3, 2, 4 -> Option D
  6. Quick Check:

    Mark migrating -> mark importing -> migrate keys -> assign slot [OK]
Hint: MIGRATING then IMPORTING before MIGRATE command [OK]
Common Mistakes:
  • Migrating keys before marking IMPORTING
  • Assigning slot ownership before migration
  • Skipping IMPORTING step
4. You run the following commands to reshard slot 7000 but keys are not migrating correctly:
CLUSTER SETSLOT 7000 MIGRATING nodeB_id
MIGRATE nodeB_ip 6379 "" 0 7000
CLUSTER SETSLOT 7000 NODE nodeB_id
What is missing to fix the migration?
medium
A. Mark slot as IMPORTING on node B before MIGRATE
B. Run CLUSTER DELSLOTS 7000 on node A first
C. Use CLUSTER ADDSLOTS 7000 on node B after migration
D. Restart both nodes before migration

Solution

  1. Step 1: Identify missing IMPORTING state

    Destination node must mark slot as IMPORTING before receiving keys.
  2. Step 2: Add missing command

    Use CLUSTER SETSLOT 7000 IMPORTING nodeA_id on node B before MIGRATE.
  3. Final Answer:

    Mark slot as IMPORTING on node B before MIGRATE -> Option A
  4. Quick Check:

    IMPORTING state needed on destination [OK]
Hint: Always mark IMPORTING on target node before MIGRATE [OK]
Common Mistakes:
  • Skipping IMPORTING step
  • Deleting slots prematurely
  • Restarting nodes unnecessarily
5. During a large-scale resharding, you want to move multiple hash slots from node A to node B without downtime. Which sequence of actions ensures data consistency and minimal disruption?
hard
A. Assign slots to node B first, then migrate keys, finally mark MIGRATING on node A
B. Migrate keys first, then mark slots IMPORTING on node B, finally mark MIGRATING on node A
C. Mark slots MIGRATING on node A, mark IMPORTING on node B, migrate keys, then assign slots to node B
D. Delete slots on node A, migrate keys, then assign slots to node B

Solution

  1. Step 1: Mark slots as MIGRATING on source node

    This prevents writes to those slots on node A during migration.
  2. Step 2: Mark slots as IMPORTING on destination node

    Allows node B to accept keys for those slots.
  3. Step 3: Migrate keys using MIGRATE command

    Safely transfer keys from node A to node B.
  4. Step 4: Assign slots ownership to node B

    Finalizes the slot ownership after migration completes.
  5. Final Answer:

    Mark slots MIGRATING on node A, mark IMPORTING on node B, migrate keys, then assign slots to node B -> Option C
  6. Quick Check:

    MIGRATING -> IMPORTING -> MIGRATE -> ASSIGN [OK]
Hint: Follow MIGRATING, IMPORTING, MIGRATE, then assign slots [OK]
Common Mistakes:
  • Assigning slots before migration
  • Migrating keys without marking IMPORTING
  • Deleting slots before migration
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