Bird
Raised Fist0
Redisquery~5 mins

Session storage pattern in Redis

Choose your learning style10 modes available
Introduction

We use session storage to keep user data temporarily while they use a website or app. It helps remember who they are and what they did without saving forever.

When a user logs into a website and you want to remember their login during their visit.
When you want to store a shopping cart for a user before they check out.
When you need to save temporary preferences like language or theme while the user browses.
When you want to track user activity during a session without saving it permanently.
When you want fast access to user data that expires after some time.
Syntax
Redis
SET session:<session_id> <data> EX <seconds>
Use a unique session ID to store each user's data separately.
The EX option sets how long the session data stays before it expires automatically.
Examples
This saves session data for user 42 with a cart of 3 items, expiring in 1 hour.
Redis
SET session:12345 "user_id=42;cart=3" EX 3600
This retrieves the stored session data for session ID 12345.
Redis
GET session:12345
This deletes the session data when the user logs out or the session ends.
Redis
DEL session:12345
Sample Program

This example stores session data for user 'alice' with a dark theme for 30 minutes, then retrieves it.

Redis
SET session:abc123 "user=alice;theme=dark" EX 1800
GET session:abc123
OutputSuccess
Important Notes

Always use a unique session ID to avoid overwriting other users' data.

Set an expiration time to automatically clear old sessions and save memory.

Session data should be small and simple for fast access.

Summary

Session storage keeps temporary user data during their visit.

Use Redis SET with an expiration to save session info.

Retrieve with GET and delete with DEL when done.

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

  1. 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.
  2. 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.
  3. Final Answer:

    To keep temporary user data during their visit -> Option A
  4. 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

  1. 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.
  2. Step 2: Identify command to save with expiration

    SETEX is the command that sets a key's value and expiration time in one step.
  3. Final Answer:

    SETEX -> Option D
  4. 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

  1. Step 1: Understand SETEX effect

    SETEX sets the key 'session:12345' with value 'user_data' and expiration 300 seconds.
  2. Step 2: Check GET output immediately after SETEX

    Since the key exists and is not expired yet, GET returns the stored value 'user_data'.
  3. Final Answer:

    "user_data" -> Option C
  4. 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

  1. Step 1: Check DEL command correctness

    DEL session:12345 is correct syntax to delete the key.
  2. Step 2: Understand GET after DEL

    After deletion, GET returns nil because the key no longer exists.
  3. Final Answer:

    No error; GET returns nil after DEL -> Option B
  4. 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

  1. 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.
  2. Step 2: Confirm deletion after setting

    DEL removes the key when session ends, so DEL after SETEX is correct.
  3. Final Answer:

    SETEX session:abc 600 "data"; DEL session:abc -> Option A
  4. 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 unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard