📖 Scenario: You are managing a Redis database for a small online store. To protect data from accidental loss, you want to create point-in-time snapshots using Redis RDB files.
🎯 Goal: Set up Redis RDB snapshotting by configuring the Redis server to save snapshots at specific intervals and create a manual snapshot command.
📋 What You'll Learn
Create a Redis configuration snippet to enable RDB snapshots
Set snapshot intervals for saving data
Add a manual command to trigger snapshot saving
Verify the configuration includes the save directives and the manual save command
💡 Why This Matters
🌍 Real World
Redis RDB snapshots are used to create backups of the database at specific points in time to prevent data loss.
💼 Career
Understanding Redis snapshot configuration is important for roles like DevOps, backend developers, and database administrators managing Redis in production.
Progress0 / 4 steps
1
Enable RDB Snapshotting in Redis Configuration
Write a Redis configuration line to enable RDB snapshotting by adding save 900 1 which means save the DB if at least 1 key changed in 900 seconds.
Redis
Hint
The save directive controls snapshot intervals. Here, 900 seconds and 1 change triggers a snapshot.
2
Add Additional Snapshot Interval
Add another save directive line save 300 10 to save the DB if at least 10 keys changed in 300 seconds.
Redis
Hint
You can have multiple save lines for different intervals and change counts.
3
Add Manual Snapshot Command
Add a line dbfilename dump.rdb to specify the snapshot file name and a line save 60 10000 to save if 10000 keys changed in 60 seconds.
Redis
Hint
The dbfilename sets the RDB file name. Adding more save lines controls snapshot frequency.
4
Complete Redis Snapshot Configuration
Add the line stop-writes-on-bgsave-error yes to ensure Redis stops writes if snapshot saving fails, completing the snapshot configuration.
Redis
Hint
This setting helps protect data integrity by stopping writes if snapshot saving fails.
Practice
(1/5)
1. What is the primary purpose of an RDB snapshot in Redis?
easy
A. To increase the speed of Redis commands
B. To save the current state of the database at a specific point in time
C. To permanently delete all data from Redis
D. To replicate data to another Redis instance in real-time
Solution
Step 1: Understand what RDB snapshots do
RDB snapshots capture the exact data stored in Redis at a certain moment, creating a backup file.
Step 2: Compare options with snapshot purpose
Only To save the current state of the database at a specific point in time describes saving the database state at a point in time, which matches the snapshot function.
Final Answer:
To save the current state of the database at a specific point in time -> Option B
Quick Check:
RDB snapshot = point-in-time save [OK]
Hint: Snapshots save data state at one moment, like a photo [OK]
Common Mistakes:
Confusing snapshots with real-time replication
Thinking snapshots delete data
Assuming snapshots speed up commands
2. Which Redis command creates an RDB snapshot immediately and blocks the server until done?
easy
A. SAVE
B. BGSAVE
C. RESTORE
D. FLUSHDB
Solution
Step 1: Recall Redis commands for snapshots
SAVE blocks Redis and saves the snapshot immediately; BGSAVE saves in background without blocking.
Step 2: Match command to blocking immediate save
Only SAVE matches the description of immediate blocking snapshot creation.
Final Answer:
SAVE -> Option A
Quick Check:
Immediate blocking snapshot = SAVE [OK]
Hint: SAVE blocks Redis to save snapshot immediately [OK]
Common Mistakes:
Choosing BGSAVE which is non-blocking
Confusing RESTORE with saving snapshots
Thinking FLUSHDB saves data
3. Given the following Redis commands executed in order:
BGSAVE
SET key1 value1
SAVE
SET key2 value2
Which keys will be present in the RDB snapshot created by the SAVE command?
medium
A. Neither key1 nor key2
B. Only key2
C. Only key1
D. Both key1 and key2
Solution
Step 1: Understand timing of BGSAVE and SAVE
BGSAVE starts background save but does not block; SET key1 happens after BGSAVE starts, so key1 may or may not be in that snapshot.
Step 2: SAVE blocks and saves immediately after SET key1
SAVE runs after SET key1 but before SET key2, so the snapshot from SAVE includes key1 but not key2.
Final Answer:
Only key1 -> Option C
Quick Check:
SAVE snapshot = keys before SAVE command [OK]
Hint: SAVE snapshot includes keys set before it runs [OK]
Common Mistakes:
Assuming BGSAVE snapshot includes key1 for sure
Thinking SAVE snapshot includes key2 set after it
Confusing background and immediate saves
4. You run the command BGSAVE but receive an error: "Background save already in progress". What is the best way to fix this?
medium
A. Run FLUSHALL to clear all data and then run BGSAVE
B. Restart the Redis server to clear the background save
C. Run SAVE instead to block and save immediately
D. Wait for the current background save to finish before running BGSAVE again
Solution
Step 1: Understand the error cause
The error means a background save is already running; Redis does not allow multiple concurrent BGSAVE commands.
Step 2: Choose the proper fix
Waiting for the current BGSAVE to finish is the correct approach; running SAVE blocks but is not necessary, restarting or flushing data is extreme and unnecessary.
Final Answer:
Wait for the current background save to finish before running BGSAVE again -> Option D
Quick Check:
Only one BGSAVE at a time allowed [OK]
Hint: Only one BGSAVE runs at once; wait before retrying [OK]
Common Mistakes:
Restarting server unnecessarily
Running SAVE without need
Flushing data to fix save error
5. You want to ensure Redis creates an RDB snapshot every 5 minutes only if at least 100 keys changed. Which configuration snippet correctly sets this behavior in redis.conf?
hard
A. save 300 100
B. save 100 300
C. save 5 100
D. save 300 5
Solution
Step 1: Understand Redis save syntax
The syntax is save <seconds> <changes>, meaning save if at least <changes> keys changed in <seconds> seconds.
Step 2: Match 5 minutes and 100 changes
5 minutes = 300 seconds, so save 300 100 means save every 300 seconds if 100 keys changed.
Final Answer:
save 300 100 -> Option A
Quick Check:
save seconds changes = save 300 100 [OK]
Hint: save syntax: save seconds changes (time then count) [OK]
Common Mistakes:
Swapping seconds and changes values
Using minutes instead of seconds
Misunderstanding save triggers
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.