📖 Scenario: You are managing a small online store's Redis database. You want to add multiple products with their prices quickly using Redis commands.
🎯 Goal: Build a Redis pipeline that sends multiple SET commands to store product prices efficiently.
📋 What You'll Learn
Create a Redis pipeline object called pipe.
Add three SET commands to the pipeline for products: "apple", "banana", and "cherry" with prices 100, 200, and 300 respectively.
Execute the pipeline with the execute() method.
💡 Why This Matters
🌍 Real World
Using Redis pipelines helps speed up multiple commands by sending them together, which is useful in real-time applications like online stores or caching systems.
💼 Career
Knowing how to use Redis pipelines is valuable for backend developers and database administrators to optimize performance and reduce network overhead.
Progress0 / 4 steps
1
Create a Redis pipeline object
Create a Redis pipeline object called pipe using r.pipeline().
Redis
Hint
Use pipe = r.pipeline() to create the pipeline object.
2
Add SET commands to the pipeline
Add three SET commands to the pipeline pipe for keys "apple", "banana", and "cherry" with values 100, 200, and 300 respectively using pipe.set().
Redis
Hint
Use pipe.set(key, value) to add each command to the pipeline.
3
Execute the pipeline
Execute the pipeline pipe using the execute() method to send all commands to Redis at once.
Redis
Hint
Call pipe.execute() to send all commands together.
4
Verify the stored values
Retrieve the values for "apple", "banana", and "cherry" from Redis using r.get() and store them in variables apple_price, banana_price, and cherry_price respectively.
Redis
Hint
Use r.get(key) to get the stored values.
Practice
(1/5)
1. What is the main benefit of sending multiple commands in a Redis pipeline?
easy
A. It compresses the data before sending.
B. It reduces network round trips and speeds up command execution.
C. It automatically backs up the data.
D. It encrypts the commands for security.
Solution
Step 1: Understand what pipelining does
Pipelining sends many commands at once without waiting for each reply, reducing network delays.
Step 2: Identify the main benefit
This reduces the number of network round trips, making command execution faster.
Final Answer:
It reduces network round trips and speeds up command execution. -> Option B
Quick Check:
Pipelining = faster execution [OK]
Hint: Pipelining batches commands to save network time [OK]
Common Mistakes:
Thinking pipelining encrypts commands
Assuming pipelining compresses data
Believing pipelining backs up data automatically
2. Which of the following is the correct way to start a Redis transaction pipeline?
easy
A. MULTI
B. PIPELINE
C. EXEC
D. BEGIN
Solution
Step 1: Recall Redis transaction commands
Redis transactions start with the command MULTI to begin queuing commands.
Step 2: Confirm the correct command
EXEC is used to execute queued commands, not to start the pipeline.
Final Answer:
MULTI -> Option A
Quick Check:
Start pipeline with MULTI [OK]
Hint: Start with MULTI, end with EXEC [OK]
Common Mistakes:
Using EXEC to start instead of end
Using PIPELINE which is not a Redis command
Using BEGIN which is not valid in Redis
3. Consider the following Redis pipeline commands:
MULTI
SET key1 value1
SET key2 value2
EXEC
What will be the output of the EXEC command?
medium
A. [1, 1]
B. ["value1", "value2"]
C. Error: EXEC without MULTI
D. ["OK", "OK"]
Solution
Step 1: Understand MULTI/EXEC behavior
Commands between MULTI and EXEC are queued and executed atomically when EXEC runs.
Step 2: Analyze the commands SET key1 value1 and SET key2 value2
Each SET command returns "OK" on success.
Final Answer:
["OK", "OK"] -> Option D
Quick Check:
SET commands return OK in EXEC output [OK]
Hint: SET returns OK, EXEC returns array of results [OK]
Common Mistakes:
Expecting EXEC to return values set
Confusing EXEC output with command errors
Thinking EXEC returns numeric success codes
4. You wrote this Redis pipeline code:
MULTI
SET key1 value1
GET key1
EXEC
But the GET command returns nil instead of 'value1'. What is the likely cause?
medium
A. GET command is not supported inside MULTI/EXEC.
B. You forgot to call DISCARD after MULTI.
C. GET command runs before SET in the pipeline, so key1 is not set yet.
D. The key1 was deleted before EXEC.
Solution
Step 1: Understand command queuing in MULTI/EXEC
Commands are queued and executed atomically, but GET inside MULTI returns nil because it reads before SET is applied.
Step 2: Explain why GET returns nil
GET does not see the queued SET command's effect until after EXEC finishes.
Final Answer:
GET command runs before SET in the pipeline, so key1 is not set yet. -> Option C
Quick Check:
GET inside MULTI sees old data [OK]
Hint: GET inside MULTI reads old data, use EXEC results [OK]
Common Mistakes:
Assuming GET works immediately inside MULTI
Thinking DISCARD is needed here
Believing GET is unsupported in transactions
5. You want to increment two counters atomically using Redis pipeline. Which sequence correctly uses MULTI/EXEC to do this?
hard
A.
MULTI
INCR counter1
INCR counter2
EXEC
B.
INCR counter1
INCR counter2
C.
MULTI
INCR counter1
EXEC
INCR counter2
EXEC
D.
PIPELINE
INCR counter1
INCR counter2
EXEC
Solution
Step 1: Identify atomic increment commands
INCR commands increase counters by 1; to run atomically, they must be inside MULTI/EXEC.
Step 2: Check each option for correct pipeline usage
MULTI
INCR counter1
INCR counter2
EXEC
queues both INCR commands inside MULTI and executes them together with EXEC.
Step 3: Explain why others are incorrect
INCR counter1
INCR counter2
runs commands separately, not atomically.
MULTI
INCR counter1
EXEC
INCR counter2
EXEC
splits increments into two transactions.
PIPELINE
INCR counter1
INCR counter2
EXEC
uses invalid PIPELINE command.
Final Answer:
MULTI
INCR counter1
INCR counter2
EXEC -> Option A
Quick Check:
Atomic increments need MULTI/EXEC [OK]
Hint: Use MULTI before commands, EXEC after to run atomically [OK]
Common Mistakes:
Running commands outside MULTI/EXEC for atomicity
Using invalid PIPELINE command
Splitting increments into separate transactions
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.