Bird
Raised Fist0
Redisquery~5 mins

EXEC to execute in Redis - Time & Space Complexity

Choose your learning style10 modes available
Time Complexity: EXEC to execute
O(n)
Understanding Time Complexity

We want to understand how the time to run a Redis transaction changes as we add more commands inside it.

How does the number of commands inside EXEC affect the total time to complete?

Scenario Under Consideration

Analyze the time complexity of the following Redis transaction using EXEC.


MULTI
SET key1 value1
SET key2 value2
... (more SET commands) ...
EXEC
    

This code starts a transaction, queues several SET commands, then runs them all at once with EXEC.

Identify Repeating Operations

Look for repeated actions inside the transaction.

  • Primary operation: Each SET command queued inside MULTI.
  • How many times: Number of SET commands added before EXEC.
How Execution Grows With Input

As you add more commands, the total work grows.

Input Size (n)Approx. Operations
1010 SET commands executed
100100 SET commands executed
10001000 SET commands executed

Pattern observation: The total execution time grows roughly in direct proportion to the number of commands.

Final Time Complexity

Time Complexity: O(n)

This means the time to run EXEC grows linearly with the number of commands inside the transaction.

Common Mistake

[X] Wrong: "EXEC runs all commands instantly no matter how many there are."

[OK] Correct: Each command still needs to be processed, so more commands mean more work and more time.

Interview Connect

Knowing how Redis transactions scale helps you design efficient data operations and shows you understand how commands affect performance.

Self-Check

"What if we replaced many SET commands with a single MSET command? How would the time complexity change?"

Practice

(1/5)
1. What does the EXEC command do in Redis transactions?
easy
A. It runs all queued commands in a transaction at once.
B. It starts queuing commands for a transaction.
C. It cancels all queued commands in a transaction.
D. It checks the status of the Redis server.

Solution

  1. Step 1: Understand Redis transaction commands

    The MULTI command starts queuing commands, and EXEC runs them all together.
  2. Step 2: Identify the role of EXEC

    EXEC executes all commands queued after MULTI in one atomic operation.
  3. Final Answer:

    It runs all queued commands in a transaction at once. -> Option A
  4. Quick Check:

    EXEC runs queued commands = B [OK]
Hint: Remember: MULTI queues, EXEC runs all queued commands [OK]
Common Mistakes:
  • Confusing EXEC with MULTI
  • Thinking EXEC cancels commands
  • Assuming EXEC checks server status
2. Which of the following is the correct sequence to run multiple commands atomically in Redis?
easy
A. SET key value, EXEC, MULTI
B. EXEC, MULTI, SET key value
C. MULTI, SET key value, EXEC
D. SET key value, MULTI, EXEC

Solution

  1. Step 1: Recall the transaction command order

    First, MULTI starts the transaction, then commands like SET queue, and finally EXEC runs them.
  2. Step 2: Match the correct order

    MULTI, SET key value, EXEC follows this order: MULTI, then SET, then EXEC.
  3. Final Answer:

    MULTI, SET key value, EXEC -> Option C
  4. Quick Check:

    Start with MULTI, end with EXEC = A [OK]
Hint: MULTI starts, EXEC ends the transaction [OK]
Common Mistakes:
  • Putting EXEC before MULTI
  • Running SET before MULTI
  • Mixing command order
3. Given the following Redis commands executed in order:
MULTI
SET user:1:name "Alice"
INCR user:1:visits
EXEC
What will be the result of the EXEC command?
medium
A. An error because INCR on a string key
B. ["OK", 1]
C. ["QUEUED", "QUEUED"]
D. Empty array []

Solution

  1. Step 1: Analyze queued commands

    SET user:1:name "Alice" sets a string key, returns "OK"; INCR user:1:visits increments a numeric key, returns the new value.
  2. Step 2: Understand EXEC output

    EXEC returns an array with results of each command: ["OK", 1].
  3. Final Answer:

    ["OK", 1] -> Option B
  4. Quick Check:

    EXEC returns results array = C [OK]
Hint: EXEC returns results of all queued commands in order [OK]
Common Mistakes:
  • Expecting QUEUED responses from EXEC
  • Thinking INCR causes error on string key
  • Assuming EXEC returns empty array
4. You run the following Redis commands:
MULTI
SET key1 "value1"
GET key1
EXEC
What will be the result of the EXEC command?
medium
A. An error because GET command is not allowed inside MULTI block
B. You forgot to call MULTI before queuing commands
C. The GET command returns QUEUED, causing EXEC to fail
D. No error; EXEC always succeeds if MULTI was called

Solution

  1. Step 1: Understand command behavior in transactions

    Some commands like GET are allowed but return QUEUED during MULTI, and EXEC returns their results after execution.
  2. Step 2: Identify that no error occurs

    GET is fully supported inside MULTI/EXEC blocks, so EXEC succeeds and returns ["OK", "value1"].
  3. Final Answer:

    No error; EXEC always succeeds if MULTI was called -> Option D
  4. Quick Check:

    GET inside MULTI causes no error = D [OK]
Hint: Check if commands are allowed inside MULTI before EXEC [OK]
Common Mistakes:
  • Assuming all commands work inside MULTI
  • Forgetting to call MULTI before EXEC
  • Expecting EXEC to never fail
5. You want to increment a counter atomically with optimistic locking (aborting if the key was modified meanwhile), using Redis transactions. Which sequence correctly uses WATCH, MULTI, and EXEC to do this safely?
hard
A.
WATCH counter
MULTI
INCR counter
EXEC
B.
MULTI
WATCH counter
INCR counter
EXEC
C.
MULTI
INCR counter
EXEC
WATCH counter
D.
INCR counter
WATCH counter
MULTI
EXEC

Solution

  1. Step 1: Understand WATCH usage

    WATCH monitors keys for changes before starting a transaction with MULTI.
  2. Step 2: Correct command order for safe increment

    First WATCH counter, then MULTI, queue INCR counter, and finally EXEC to run if no changes occurred.
  3. Final Answer:

    WATCH counter MULTI INCR counter EXEC -> Option A
  4. Quick Check:

    WATCH before MULTI for safe transactions = D [OK]
Hint: Always WATCH keys before MULTI to ensure safe EXEC [OK]
Common Mistakes:
  • Calling WATCH after MULTI
  • Running INCR before WATCH
  • Not using WATCH for conditional updates
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