go.redis.missing_ttl
Scalability
High
Detects Redis SET operations without TTL.
Why It Matters
Section titled “Why It Matters”Redis keys without TTL:
- Memory growth — Keys accumulate indefinitely
- OOM risk — Redis runs out of memory
- Stale data — Old values never expire
Example
Section titled “Example”// ❌ Before (no TTL)err := client.Set(ctx, "user:123", userData, 0).Err()// ✅ After (with TTL)err := client.Set(ctx, "user:123", userData, 24*time.Hour).Err()// ✅ Alternative (SetEX for explicit expiration)err := client.SetEx(ctx, "session:abc", sessionData, 30*time.Minute).Err()What Unfault Detects
Section titled “What Unfault Detects”- Set with duration 0 (no expiry)
- Missing expiration on cache keys
- SetNX without subsequent Expire
Auto-Fix
Section titled “Auto-Fix”Unfault can add TTL parameters to Redis SET operations.