📖 Scenario: You are managing a Redis cache for a web application that stores user session data. The cache has limited memory, so you need to understand how Redis handles data eviction when it runs out of space.
🎯 Goal: Learn how to configure and observe different Redis eviction policies to manage memory usage effectively.
📋 What You'll Learn
Create a Redis configuration dictionary with memory limit and eviction policy
Add a variable to hold the maximum memory size in bytes
Write a command to set the eviction policy in Redis configuration
Complete the Redis configuration with the eviction policy and max memory settings
💡 Why This Matters
🌍 Real World
Managing Redis eviction policies helps keep your cache efficient and prevents application errors due to memory exhaustion.
💼 Career
Understanding Redis eviction policies is important for backend developers and system administrators who optimize caching strategies.
Progress0 / 4 steps
1
DATA SETUP: Create Redis configuration dictionary
Create a dictionary called redis_config with these exact entries: 'maxmemory' set to 0 and 'maxmemory-policy' set to 'noeviction'.
Redis
Hint
Use a Python dictionary with keys 'maxmemory' and 'maxmemory-policy'.
2
CONFIGURATION: Add max memory size variable
Create a variable called max_memory_bytes and set it to 104857600 (which is 100 MB).
Redis
Hint
Set max_memory_bytes to 104857600 to represent 100 MB.
3
CORE LOGIC: Update eviction policy in configuration
Update the redis_config dictionary to set 'maxmemory-policy' to 'allkeys-lru'.
Redis
Hint
Change the value of 'maxmemory-policy' key in redis_config to 'allkeys-lru'.
4
COMPLETION: Set maxmemory to max_memory_bytes
Update the redis_config dictionary to set 'maxmemory' to the value of max_memory_bytes.
Redis
Hint
Assign max_memory_bytes to the 'maxmemory' key in redis_config.
Practice
(1/5)
1. What is the main purpose of eviction policies in Redis?
easy
A. To encrypt Redis data
B. To configure the network settings of Redis
C. To backup data automatically
D. To decide how Redis frees memory when it is full
Solution
Step 1: Understand Redis memory management
Redis uses eviction policies to manage memory when it reaches its limit.
Step 2: Identify the role of eviction policies
Eviction policies decide which data to remove to free memory and keep Redis running smoothly.
Final Answer:
To decide how Redis frees memory when it is full -> Option D
Quick Check:
Eviction policies control memory freeing = A [OK]
Hint: Eviction policies manage memory freeing in Redis [OK]
Common Mistakes:
Confusing eviction policies with backup or encryption
Thinking eviction policies configure network
Assuming eviction policies handle data encryption
2. Which command correctly sets the eviction policy to 'allkeys-lru' in Redis?
easy
A. CONFIG SET maxmemory-policy allkeys-lru
B. SET maxmemory-policy allkeys-lru
C. CONFIG GET maxmemory-policy allkeys-lru
D. EVICT POLICY allkeys-lru
Solution
Step 1: Recall the correct command format
Redis uses CONFIG SET to change configuration settings.
Step 2: Match the correct syntax for eviction policy
The correct syntax is CONFIG SET maxmemory-policy policy_name, so allkeys-lru fits here.
Final Answer:
CONFIG SET maxmemory-policy allkeys-lru -> Option A
Quick Check:
Use CONFIG SET for eviction policy = A [OK]
Hint: Use CONFIG SET maxmemory-policy to set eviction [OK]
Common Mistakes:
Using SET instead of CONFIG SET
Using CONFIG GET to set a value
Using a non-existent EVICT POLICY command
3. Given Redis is set with eviction policy volatile-lru and maxmemory is reached, which keys are eligible for eviction?
medium
A. All keys regardless of expiration
B. Only keys with an expiration set
C. Only keys without expiration
D. No keys are evicted automatically
Solution
Step 1: Understand 'volatile-lru' policy meaning
This policy evicts keys with expiration set using least recently used (LRU) order.
Step 2: Identify which keys can be evicted
Only keys that have an expiration time are considered for eviction under 'volatile-lru'. Keys without expiration stay safe.
Final Answer:
Only keys with an expiration set -> Option B
Quick Check:
volatile-lru evicts expiring keys = B [OK]
Hint: volatile-lru evicts only keys with expiration [OK]
Common Mistakes:
Thinking all keys are evicted
Confusing volatile-lru with allkeys-lru
Assuming no keys are evicted automatically
4. You set Redis eviction policy to noeviction but Redis still evicts keys when memory is full. What is the likely cause?
medium
A. The policy was not applied correctly or Redis was restarted without saving config
B. Redis always evicts keys regardless of policy
C. noeviction policy evicts keys randomly
D. Redis ignores eviction policies when maxmemory is set
Solution
Step 1: Understand 'noeviction' policy behavior
This policy prevents Redis from evicting keys automatically when memory is full.
Step 2: Identify why eviction still happens
If eviction occurs, likely the policy was not saved or applied properly, or Redis restarted without config persistence.
Final Answer:
The policy was not applied correctly or Redis was restarted without saving config -> Option A
Quick Check:
noeviction means no eviction unless misconfigured = C [OK]
Hint: Check config save and apply for noeviction policy [OK]
Common Mistakes:
Believing Redis always evicts keys
Thinking noeviction evicts randomly
Assuming eviction policies are ignored when maxmemory is set
5. You want Redis to evict the least recently used keys regardless of expiration when memory is full. Which eviction policy should you choose?
hard
A. volatile-lru
B. noeviction
C. allkeys-lru
D. volatile-random
Solution
Step 1: Understand eviction policy options
volatile-lru evicts only keys with expiration; allkeys-lru evicts any key using LRU.
Step 2: Match requirement to policy
Since eviction should ignore expiration and evict least recently used keys, allkeys-lru fits best.
Final Answer:
allkeys-lru -> Option C
Quick Check:
Evict any key LRU = allkeys-lru = D [OK]
Hint: allkeys-lru evicts any key by least recent use [OK]
Common Mistakes:
Choosing volatile-lru which only evicts expiring keys
Selecting volatile-random which evicts randomly
Picking noeviction which disables eviction
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.