The MULTI command starts a transaction block in Redis. It queues multiple commands so they can be executed together atomically with EXEC.
Click to reveal answer
beginner
How do you execute all commands queued after MULTI in Redis?
You use the EXEC command to execute all the commands queued after MULTI as a single atomic transaction.
Click to reveal answer
intermediate
What happens if you call DISCARD after MULTI in Redis?
DISCARD cancels the transaction and clears all queued commands after MULTI without executing them.
Click to reveal answer
intermediate
Can commands inside a MULTI block in Redis fail individually?
No, commands are queued and only executed together with EXEC. If one command fails during execution, the whole transaction still runs but errors are reported per command.
Click to reveal answer
beginner
Why use MULTI in Redis instead of running commands one by one?
Using MULTI ensures commands run atomically, so no other client can run commands in between. This keeps data consistent and avoids race conditions.
Click to reveal answer
What is the first command to start a transaction in Redis?
AEXEC
BWATCH
CDISCARD
DMULTI
✗ Incorrect
MULTI starts the transaction block by queuing commands.
Which command executes all queued commands after MULTI?
AMULTI
BDISCARD
CEXEC
DFLUSH
✗ Incorrect
EXEC runs all commands queued after MULTI atomically.
What does DISCARD do in a Redis transaction?
AStarts a transaction
BCancels the transaction and clears queued commands
CLocks keys for transaction
DExecutes queued commands
✗ Incorrect
DISCARD cancels the transaction and clears all queued commands.
If a command inside MULTI fails, what happens?
AAll commands run, errors reported per command
BOnly the failed command is skipped
CThe whole transaction is aborted
DRedis crashes
✗ Incorrect
All commands run atomically; errors are reported individually.
Why use MULTI in Redis?
ATo run commands atomically
BTo delete keys
CTo speed up commands
DTo monitor commands
✗ Incorrect
MULTI ensures commands run atomically without interference.
Explain how the MULTI command works in Redis and how it relates to EXEC and DISCARD.
Think about starting, running, or canceling a group of commands.
You got /4 concepts.
Why is atomicity important in Redis transactions started with MULTI?
Consider what happens if commands run one by one without control.
You got /3 concepts.
Practice
(1/5)
1.
What does the MULTI command do in Redis?
easy
A. Immediately executes all commands
B. Starts a transaction block to queue commands
C. Deletes all keys in the database
D. Shows the current database size
Solution
Step 1: Understand the purpose of MULTI
The MULTI command begins a transaction block where commands are queued instead of executed immediately.
Step 2: Compare with other options
The other options describe different Redis commands or actions unrelated to MULTI.
Final Answer:
Starts a transaction block to queue commands -> Option B
Quick Check:
MULTI = start transaction block [OK]
Hint: MULTI queues commands for atomic execution [OK]
Common Mistakes:
Thinking MULTI executes commands immediately
Confusing MULTI with FLUSHDB or DBSIZE
Assuming MULTI deletes keys
2.
Which of the following is the correct syntax to start a transaction block in Redis?
?
easy
A. START TRANSACTION
B. EXEC
C. MULTI
D. BEGIN
Solution
Step 1: Identify Redis transaction start command
In Redis, MULTI is used to start a transaction block.
Step 2: Check other options
EXEC runs queued commands, BEGIN and START TRANSACTION are SQL commands, not Redis.
Final Answer:
MULTI -> Option C
Quick Check:
Start transaction = MULTI [OK]
Hint: MULTI starts, EXEC runs queued commands [OK]
Common Mistakes:
Using SQL syntax like BEGIN or START TRANSACTION
Confusing EXEC as start command
Typing lowercase commands (Redis commands are case-insensitive but usually uppercase)
3.
Consider the following Redis commands executed in order:
MULTI
SET key1 value1
SET key2 value2
EXEC
GET key1
GET key2
What will be the output of the two GET commands?
medium
A. ["value1", "value2"]
B. [null, null]
C. ["value1", null]
D. [null, "value2"]
Solution
Step 1: Understand MULTI and EXEC behavior
The commands between MULTI and EXEC are queued and executed atomically when EXEC runs. So both SET commands run together.
Step 2: Check GET commands after EXEC
After EXEC, both keys are set, so GET key1 returns "value1" and GET key2 returns "value2".
Final Answer:
["value1", "value2"] -> Option A
Quick Check:
Queued SETs run on EXEC, GET returns set values [OK]
Hint: EXEC runs queued commands, so GET sees updated keys [OK]
Common Mistakes:
Assuming SET commands run immediately before EXEC
Expecting null because commands are queued
Confusing output format of GET commands
4.
What is wrong with this Redis transaction block?
MULTI
SET key1 value1
GET key1
EXEC
medium
A. MULTI must be followed by WATCH
B. EXEC must come before GET
C. SET cannot be used inside MULTI
D. GET inside MULTI queues the command, does not return value immediately
Solution
Step 1: Analyze GET inside MULTI block
Inside MULTI, commands are queued and do not return results immediately, so GET queues but does not return the value now.
Step 2: Understand EXEC behavior
EXEC runs all queued commands and returns their results together, so GET's result is only available after EXEC.
Final Answer:
GET inside MULTI queues the command, does not return value immediately -> Option D
Quick Check:
Commands queue inside MULTI, results after EXEC [OK]
Hint: GET inside MULTI queues, no immediate output [OK]
Common Mistakes:
Expecting GET to return value immediately inside MULTI
Thinking EXEC must come before GET
Believing SET is disallowed inside MULTI
5.
You want to update two keys user:1 and user:2 atomically in Redis. Which sequence correctly uses MULTI and EXEC to ensure both updates happen together?
?
hard
A. MULTI
SET user:1 "Alice"
SET user:2 "Bob"
EXEC
B. SET user:1 "Alice"
MULTI
SET user:2 "Bob"
EXEC
C. MULTI
SET user:1 "Alice"
EXEC
SET user:2 "Bob"
D. EXEC
MULTI
SET user:1 "Alice"
SET user:2 "Bob"
Solution
Step 1: Identify correct transaction block
MULTI
SET user:1 "Alice"
SET user:2 "Bob"
EXEC starts with MULTI, queues both SET commands, then runs them together with EXEC.
Step 2: Check other options for errors
SET user:1 "Alice"
MULTI
SET user:2 "Bob"
EXEC queues only one SET inside MULTI; MULTI
SET user:1 "Alice"
EXEC
SET user:2 "Bob" runs EXEC too early; EXEC
MULTI
SET user:1 "Alice"
SET user:2 "Bob" starts with EXEC which is invalid.
Final Answer:
MULTI
SET user:1 "Alice"
SET user:2 "Bob"
EXEC -> Option A
Quick Check:
Queue all commands between MULTI and EXEC [OK]
Hint: Queue all commands between MULTI and EXEC for atomic update [OK]
Common Mistakes:
Calling EXEC before queuing all commands
Starting EXEC before MULTI
Mixing commands outside transaction block
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.