1.4 KiB
1.4 KiB
| title | impact | impactDescription | tags | description | alwaysApply |
|---|---|---|---|---|---|
| Configure Memory Limits and Eviction Policies | HIGH | Prevents out-of-memory crashes and unpredictable behavior | memory, maxmemory, eviction, lru, ttl | Configure Memory Limits and Eviction Policies | true |
Configure Memory Limits and Eviction Policies
Always configure maxmemory and an eviction policy to prevent Redis from consuming all available memory.
Correct: Set explicit memory limits.
maxmemory 2gb
maxmemory-policy allkeys-lru
| Policy | Use Case |
|---|---|
volatile-lru |
Evict keys with TTL, least recently used first |
allkeys-lru |
Evict any key, least recently used first |
volatile-ttl |
Evict keys closest to expiration |
noeviction |
Return errors when memory is full (use for critical data) |
Incorrect: Running Redis without memory limits.
# No maxmemory set - Redis will use all available RAM
# Can cause OOM killer to terminate Redis or other processes
Memory optimization tips:
- Use Hashes for small objects (more memory-efficient than separate keys)
- Use
OBJECT ENCODING keyto check how Redis stores your data - Use
MEMORY USAGE keyto check individual key memory consumption - Enable compression in your client for large values
Reference: Redis Memory Optimization