📖 Scenario: You are building a user profile system with Redis. You need to store user data, manage sessions with expiration, and use the right data types for different access patterns.
🎯 Goal: Store user profiles using hashes, manage sessions with TTL, and use lists for activity tracking.
📋 What You'll Learn
Store a user profile using a Redis hash
Create a session key with expiration
Track recent user activity with a list
Retrieve all data back to verify
💡 Why This Matters
🌍 Real World
Redis key-value patterns are the foundation of session management, caching, and real-time data systems at companies like Twitter, Instagram, and Stack Overflow.
💼 Career
Every backend developer needs to understand Redis data types to choose the right structure for caching, sessions, queues, and real-time features.
Progress0 / 4 steps
1
Store a user profile with HSET
Use HSET to store a user profile at key user:42 with fields: name set to "Alice", email set to "alice@example.com", and age set to "30".
Redis
Hint
HSET key field value field value — sets multiple fields in one command.
2
Create a session with expiration
Use SET with the EX option to create a session key session:abc123 with value "user:42" that expires in 3600 seconds.
Redis
Hint
SET key value EX seconds — sets the key with an automatic expiration.
3
Track activity with a list
Use LPUSH to add three activities to the key activity:user:42: "login", "view_profile", and "update_email" in that order.
Redis
Hint
LPUSH pushes elements to the left (head) of the list. Multiple values can be pushed in one command.
4
Retrieve all data
Write three commands: HGETALL user:42 to get the full profile, TTL session:abc123 to check session remaining time, and LRANGE activity:user:42 0 -1 to get all activities.
Redis
Hint
HGETALL returns all fields and values. TTL returns seconds remaining. LRANGE 0 -1 returns the entire list.
Practice
(1/5)
1. What is the main purpose of the key in a Redis key-value data model?
easy
A. To store multiple values together
B. To uniquely identify the stored data
C. To perform calculations on data
D. To format the data for display
Solution
Step 1: Understand the role of keys in Redis
Keys in Redis act as unique names that identify each piece of data stored.
Step 2: Differentiate keys from values
Values hold the actual data, while keys are used to find or access that data quickly.
Final Answer:
To uniquely identify the stored data -> Option B
Quick Check:
Key = Unique identifier [OK]
Hint: Keys uniquely name data for fast access [OK]
Common Mistakes:
Thinking keys store multiple values
Confusing keys with data formatting
Assuming keys perform calculations
2. Which of the following is the correct Redis command syntax to set a key named user:1 with value John?
easy
A. STORE user:1 John
B. GET user:1 John
C. SET user:1 John
D. SET user:1 = John
Solution
Step 1: Recall the Redis command to store a key-value pair
The command to set a key with a value is SET key value.
Step 2: Check each option's syntax
SET user:1 John matches the correct syntax. Options A, B, and C use incorrect commands or syntax.
Final Answer:
SET user:1 John -> Option C
Quick Check:
SET key value = correct syntax [OK]
Hint: Use SET key value to store data [OK]
Common Mistakes:
Using GET instead of SET to store data
Adding '=' sign in command
Using STORE command which doesn't exist
3. Given the following Redis commands executed in order:
SET counter 10
INCR counter
GET counter
What will be the output of the last command?
medium
A. 11
B. 10
C. counter
D. Error
Solution
Step 1: Analyze the commands executed
First, SET counter 10 sets the key counter to string "10". Then, INCR counter increments the numeric value by 1.
Step 2: Understand the effect of INCR and GET
INCR converts the string "10" to number 10, adds 1 to make 11, and stores it back. GET returns the current value, which is now "11".
Final Answer:
11 -> Option A
Quick Check:
10 + 1 = 11 [OK]
Hint: INCR adds 1 to numeric string values [OK]
Common Mistakes:
Assuming GET returns the key name
Thinking INCR works on non-numeric strings
Expecting no change after INCR
4. You run the command INCR mykey but get an error. Which of the following is the most likely cause?
medium
A. The command syntax is incorrect
B. The key mykey does not exist
C. The Redis server is down
D. The value of mykey is not an integer
Solution
Step 1: Understand INCR command requirements
INCR requires the key's value to be an integer or not exist (which initializes it to 0).
Step 2: Identify error cause
If the key exists but holds a non-integer value (like a string), INCR will cause an error.
Final Answer:
The value of mykey is not an integer -> Option D
Quick Check:
INCR needs integer value [OK]
Hint: INCR fails if value is non-integer [OK]
Common Mistakes:
Assuming missing key causes error
Blaming server status without checking value
Thinking syntax is wrong when command is correct
5. You want to store user session data in Redis using the key-value model. Which approach best ensures each session is uniquely stored and easily retrieved?
hard
A. Use a key pattern like session:{session_id} with the session data as the value
B. Store all sessions in a single key as a JSON string
C. Use the same key session for all users and overwrite values
D. Store session data as keys and user IDs as values
Solution
Step 1: Understand unique key requirements for sessions
Each user session must have a unique key to avoid overwriting and allow quick access.
Step 2: Evaluate options for storing sessions
Use a key pattern like session:{session_id} with the session data as the value uses a unique key pattern with session IDs, which is best practice. Store all sessions in a single key as a JSON string stores all sessions in one key, making access slow and complex. Use the same key session for all users and overwrite values overwrites data. Store session data as keys and user IDs as values reverses key-value roles, which is inefficient.
Final Answer:
Use a key pattern like session:{session_id} with the session data as the value -> Option A
Quick Check:
Unique keys per session = best practice [OK]
Hint: Use unique keys with session IDs for each session [OK]
Common Mistakes:
Storing all sessions in one key
Overwriting session data with same key
Confusing keys and values roles
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.