Redis hit its memory cap and the eviction policy is 'noeviction' — so writes fail. Pick a policy and stop storing unbounded keys without TTLs.
The default on some distros: when full, Redis refuses writes rather than evicting.
Sessions, job queues, and rate-limit counters written without EXPIRE grow unbounded.
redis-cli CONFIG GET maxmemory* | head; redis-cli INFO memory | grep used_memory_human
redis-cli CONFIG SET maxmemory-policy allkeys-lru
redis-cli --bigkeys; redis-cli DBSIZE
SET session:abc data EX 3600
allkeys-lru for pure cache, volatile-lru if some keys must survive. Never noeviction for a cache tier — that setting is for durable stores you babysit.
maxmemory is reached and the policy is noeviction: Redis refuses writes rather than delete data. Check INFO memory (used_memory vs maxmemory_human) and pick a policy appropriate to your use — allkeys-lru for caches, noeviction only when eviction would lose real data.
allkeys-lru for general caches (evicts least-recently-used keys, any key eligible); volatile-lru only when some keys must never be evicted (mark the rest with TTLs). noeviction on a cache just moves the failure into your app.
Our most-documented failures, packaged as ready-to-ship starter kits: Docker, Kubernetes, and Terraform.
Browse the template store →One-time. Yours to modify. Instant download from the NinjaOps template store.
One short email when new fixes and production templates drop. No spam, unsubscribe anytime.
Spin up a cloud server in 60 seconds and reproduce this fix yourself — pay by the hour.
Sentry — Free tier: see the exact line of code that broke, before users report it.
We earn a commission if you buy through our links — it never costs you extra. More vetted tools on our picks hub · comparing clouds? DigitalOcean vs Vultr and vs AWS · full deals: DigitalOcean · Vultr · NordLayer · Semrush