PHP / Magento Dev Blog

  • Home

Magento 2 cart loss – Redis session and eviction policy

by Henryk Tews / Friday, 17 July 2026 / Published in Magento / Adobe Commerce

Customers were losing their cart contents and getting logged out randomly during shopping. The problem intensified on weekends with high traffic. Fix time: 2 hours.

Symptoms

  • Customers randomly logged out during shopping
  • Cart resets without reason
  • Problem worse during high traffic
  • Redis INFO memory: used_memory close to maxmemory

Cause

Redis was configured with maxmemory-policy allkeys-lru – when free memory ran out it evicted the least recently used keys, including active user sessions.

Solution

redis-cli CONFIG SET maxmemory-policy volatile-lru
redis-cli CONFIG SET maxmemory 2gb
<?php
// app/etc/env.php - separate Redis instances for sessions and cache
'session' => [
    'save' => 'redis',
    'redis' => ['host' => '127.0.0.1', 'port' => '6380'],  // sessions
],
'cache' => [
    'frontend' => ['default' => [
        'backend_options' => ['server' => '127.0.0.1', 'port' => '6379'],  // cache
    ]],
],

Takeaways

Using Redis for both cache and sessions simultaneously is asking for trouble. Cache can be evicted – sessions cannot. Separate them into two instances with different eviction policies: allkeys-lru for cache, noeviction or volatile-lru for sessions.

About Henryk Tews

What you can read next

Xdebug – configuration, PHPStorm, debugging Magento plugins
Strategy pattern in PHP – and how Magento 2 uses it in pricing

© 2026 Created by

TOP
Zarządzaj zgodą
Aby zapewnić jak najlepsze wrażenia, korzystamy z technologii, takich jak pliki cookie, do przechowywania i/lub uzyskiwania dostępu do informacji o urządzeniu. Zgoda na te technologie pozwoli nam przetwarzać dane, takie jak zachowanie podczas przeglądania lub unikalne identyfikatory na tej stronie. Brak wyrażenia zgody lub wycofanie zgody może niekorzystnie wpłynąć na niektóre cechy i funkcje.
Funkcjonalne Always active
Przechowywanie lub dostęp do danych technicznych jest ściśle konieczny do uzasadnionego celu umożliwienia korzystania z konkretnej usługi wyraźnie żądanej przez subskrybenta lub użytkownika, lub wyłącznie w celu przeprowadzenia transmisji komunikatu przez sieć łączności elektronicznej.
Preferencje
Przechowywanie lub dostęp techniczny jest niezbędny do uzasadnionego celu przechowywania preferencji, o które nie prosi subskrybent lub użytkownik.
Statystyka
Przechowywanie techniczne lub dostęp, który jest używany wyłącznie do celów statystycznych. Przechowywanie techniczne lub dostęp, który jest używany wyłącznie do anonimowych celów statystycznych. Bez wezwania do sądu, dobrowolnego podporządkowania się dostawcy usług internetowych lub dodatkowych zapisów od strony trzeciej, informacje przechowywane lub pobierane wyłącznie w tym celu zwykle nie mogą być wykorzystywane do identyfikacji użytkownika.
Marketing
Przechowywanie lub dostęp techniczny jest wymagany do tworzenia profili użytkowników w celu wysyłania reklam lub śledzenia użytkownika na stronie internetowej lub na kilku stronach internetowych w podobnych celach marketingowych.
  • Manage options
  • Manage services
  • Manage {vendor_count} vendors
  • Read more about these purposes
Zobacz preferencje
  • {title}
  • {title}
  • {title}