Redis on Magento: when sessions and carts disappear
On most production Magento stores, Redis holds the cache and the customer sessions. When it is healthy nobody thinks about it. When it runs out of memory, customers find their carts empty and their checkout restarting — with nothing obviously down.

Cache and sessions are different
Losing cache is slow but harmless: Magento rebuilds it. Losing sessions is not: the session is where the customer’s login and checkout state live. Mixing both in one Redis instance with an eviction policy means a busy cache can push sessions out.
Keep sessions in their own Redis database or instance, with a policy that does not evict them, and size memory for your busiest day — see the Redis documentation on memory and eviction.
How it looks to customers
Carts that empty between pages, “Invalid Form Key” errors, being sent back to the first checkout step, or a login that does not stick. It is intermittent and gets worse under load, so it often shows up during a sale — exactly when the cost of a broken checkout is highest.
Timeouts to Redis look similar: pages slow down, then fail. A failover or restart without persistence logs everyone out at once.
What to watch
Track Redis memory use, evictions and connection errors, and alert on evicted keys in the sessions database. Check Magento’s exception log for Redis timeouts.
A checkout check that runs as a fresh visitor every few minutes catches the customer-facing side: add to cart and moving through checkout is exactly what fails when session storage misbehaves.
Check your own store now with the free Magento checkout test: it walks the checkout in a real browser, Luma or Hyvä, and shows the step where it stops.
If the checkout freezes at the billing or payment step, see Magento checkout stuck on billing.
Common questions
Should Magento sessions and cache use the same Redis?
No. Use separate Redis databases or instances, so a cache flush or eviction never removes sessions.
Why do Magento carts disappear?
Sessions are evicted when Redis runs out of memory, flushed together with the cache, or lost to a session lock timeout under load.
What Redis eviction policy should sessions use?
Sessions should not be evicted at all: give them enough memory and a noeviction policy, and monitor used memory.