📖 Scenario: You are building a simple web application that needs to remember user sessions. Each session stores a user's ID and login time. You will use Redis to save and retrieve these sessions efficiently.
🎯 Goal: Create a Redis session storage system that saves user sessions with a unique session ID, sets an expiration time, and retrieves session data.
📋 What You'll Learn
Create a Redis hash to store session data with keys 'user_id' and 'login_time'.
Set a session expiration time of 3600 seconds (1 hour).
Retrieve session data by session ID.
💡 Why This Matters
🌍 Real World
Web applications use session storage to remember users between page visits without needing to log in every time.
💼 Career
Understanding session storage in Redis is important for backend developers working on scalable web services and user authentication.
Progress0 / 4 steps
1
Create a session hash in Redis
Use the Redis command HSET to create a hash with the key session:12345 and fields user_id set to user_1 and login_time set to 2024-06-01T10:00:00Z.
Redis
Hint
Use HSET followed by the session key and field-value pairs.
2
Set expiration time for the session
Use the Redis command EXPIRE to set the expiration time of 3600 seconds on the key session:12345.
Redis
Hint
Use EXPIRE followed by the key and the number of seconds.
3
Retrieve session data
Use the Redis command HGETALL to get all fields and values from the session hash with key session:12345.
Redis
Hint
Use HGETALL with the session key to get all stored fields.
4
Complete session storage pattern
Combine the commands to create the session hash, set expiration, and retrieve session data for session:12345.
Redis
Hint
Make sure all commands are included in order.
Practice
(1/5)
1. What is the main purpose of using Redis for session storage?
easy
A. To keep temporary user data during their visit
B. To permanently store user files
C. To perform complex calculations
D. To replace the database for all data
Solution
Step 1: Understand session storage concept
Session storage is used to keep temporary data about a user while they interact with a website or app.
Step 2: Identify Redis role in session storage
Redis is used to store this temporary data quickly and with expiration to remove it after the session ends.
Final Answer:
To keep temporary user data during their visit -> Option A
Quick Check:
Session storage = temporary user data [OK]
Hint: Session storage = temporary user data storage [OK]
Common Mistakes:
Thinking Redis stores permanent files
Confusing session storage with database replacement
Assuming Redis does complex calculations
2. Which Redis command is used to save session data with an expiration time?
easy
A. GET
B. HGETALL
C. DEL
D. SETEX
Solution
Step 1: Recall Redis commands for session storage
GET retrieves data, DEL deletes data, HGETALL gets all hash fields, SETEX sets a key with expiration.
Step 2: Identify command to save with expiration
SETEX is the command that sets a key's value and expiration time in one step.
Final Answer:
SETEX -> Option D
Quick Check:
Save with expiration = SETEX [OK]
Hint: SETEX sets value with expiration in Redis [OK]
Common Mistakes:
Using GET to save data
Using DEL to save data
Confusing HGETALL with setting data
3. Given the commands: SETEX session:12345 300 "user_data" GET session:12345 What will be the output of the GET command immediately after SETEX?
medium
A. SyntaxError
B. nil
C. "user_data"
D. 300
Solution
Step 1: Understand SETEX effect
SETEX sets the key 'session:12345' with value 'user_data' and expiration 300 seconds.
Step 2: Check GET output immediately after SETEX
Since the key exists and is not expired yet, GET returns the stored value 'user_data'.
Final Answer:
"user_data" -> Option C
Quick Check:
GET after SETEX returns stored value [OK]
Hint: GET returns value if key exists and not expired [OK]
Common Mistakes:
Expecting nil immediately after SETEX
Confusing expiration time with returned value
Thinking GET returns expiration time
4. What is wrong with this Redis command sequence for session deletion? DEL session:12345 GET session:12345
medium
A. DEL command syntax is incorrect
B. No error; GET returns nil after DEL
C. GET will still return data after DEL
D. DEL does not delete keys
Solution
Step 1: Check DEL command correctness
DEL session:12345 is correct syntax to delete the key.
Step 2: Understand GET after DEL
After deletion, GET returns nil because the key no longer exists.
Final Answer:
No error; GET returns nil after DEL -> Option B
Quick Check:
DEL deletes key, GET returns nil [OK]
Hint: DEL removes key; GET returns nil after deletion [OK]
Common Mistakes:
Thinking DEL syntax is wrong
Expecting GET to return old data after DEL
Believing DEL does not remove keys
5. You want to store user session data in Redis that expires after 10 minutes. Which sequence correctly sets and later deletes the session?
hard
A. SETEX session:abc 600 "data"; DEL session:abc
B. SET session:abc "data"; DEL session:abc; EXPIRE session:abc 600
C. SET session:abc 600 "data"; EXPIRE session:abc 600; DEL session:abc
D. GET session:abc; SET session:abc 600 "data"; DEL session:abc
Solution
Step 1: Identify correct way to set with expiration
SETEX sets the key with value and expiration in one command, which is efficient and correct.
Step 2: Confirm deletion after setting
DEL removes the key when session ends, so DEL after SETEX is correct.
Final Answer:
SETEX session:abc 600 "data"; DEL session:abc -> Option A
Quick Check:
SETEX sets with expiry, DEL deletes key [OK]
Hint: Use SETEX to set with expiry, then DEL to delete [OK]
Common Mistakes:
Setting expiration after deleting key
Using GET before setting session
Setting expiration separately instead of SETEX
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.