[PaaS uniquement]{class="badge informative" title="S’applique uniquement aux projets Adobe Commerce on Cloud (infrastructure PaaS gérée par Adobe) et aux projets On-premise."}

Configuration du cache L2

La mise en cache permet de réduire le trafic réseau entre l’espace de stockage de cache distant et l’application Commerce. Une instance Commerce standard transfère environ 300 ko par requête et le trafic peut rapidement passer à plus de 1 000 requêtes dans certaines situations.

Pour réduire la bande passante du réseau à Redis, stockez les données de cache localement sur chaque nœud web et utilisez le cache distant à deux fins :

  • Vérifiez la version des données du cache et assurez-vous que le dernier cache est stocké localement
  • Transférer le dernier cache de l'ordinateur distant vers l'ordinateur local

Commerce stocke la version des données hachées en Redis, avec le suffixe « :hash » ajouté à la clé normale. S’il existe un cache local obsolète, les données sont transférées vers l’ordinateur local avec un adaptateur de cache.

INFO
Pour Adobe Commerce sur les infrastructures cloud, vous pouvez utiliser des variables de déploiement pour la configuration du cache L2.

Exemple de configuration

Utilisez l’exemple suivant pour modifier ou remplacer la section de cache existante dans le fichier app/etc/env.php.

'cache' => [
    'frontend' => [
        'default' => [
            'backend' => '\\Magento\\Framework\\Cache\\Backend\\RemoteSynchronizedCache',
            'backend_options' => [
                'remote_backend' => '\\Magento\\Framework\\Cache\\Backend\\Redis',
                'remote_backend_options' => [
                    'persistent' => 0,
                    'server' => 'localhost',
                    'database' => '0',
                    'port' => '6379',
                    'password' => '',
                    'compress_data' => '1',
                ],
                'local_backend' => 'Cm_Cache_Backend_File',
                'local_backend_options' => [
                    'cache_dir' => '/dev/shm/'
                ]
            ],
            'frontend_options' => [
                'write_control' => false,
            ],
        ]
    ],
    'type' => [
        'default' => ['frontend' => 'default'],
    ],
],

Où :

  • backend est l’implémentation du cache L2.

  • backend_options est la configuration du cache L2.

    • remote_backend est l’implémentation du cache distant : Redis ou MySQL.
    • remote_backend_options est la configuration du cache distant.
    • local_backend mise en œuvre du cache local : Cm_Cache_Backend_File
    • local_backend_options est la configuration du cache local.
    • cache_dir est une option spécifique au cache de fichiers pour le répertoire dans lequel le cache local est stocké.

Adobe recommande d’utiliser Redis pour la mise en cache à distance (\Magento\Framework\Cache\Backend\Redis) et Cm_Cache_Backend_File pour la mise en cache locale des données en mémoire partagée, en utilisant : 'local_backend_options' => ['cache_dir' => '/dev/shm/']

Adobe recommande l’utilisation de la fonction cache preload, car elle réduit considérablement la pression sur Redis. N'oubliez pas d'ajouter le suffixe ':hash' pour les clés de préchargement.

Options de cache obsolètes

À partir de la Commerce 2.4, l’option use_stale_cache peut améliorer les performances dans certains cas spécifiques.

En règle générale, le compromis avec l’attente de verrous est acceptable du point de vue des performances, mais plus le nombre de blocs ou de cache du commerçant est élevé, plus il passe de temps à attendre des verrous. Dans certains scénarios, vous pouvez attendre un nombre de clés * délai de recherche pour le processus. Dans de rares cas, le marchand peut avoir des centaines de clés dans le cache Block/Config, de sorte que même un petit délai de recherche pour le verrouillage peut coûter des secondes.

Le cache obsolète ne fonctionne qu’avec un cache L2. Avec un cache obsolète, vous pouvez envoyer un cache obsolète, tandis qu’un nouveau est généré dans un processus parallèle. Pour activer le cache obsolète, ajoutez 'use_stale_cache' => true à la configuration supérieure du cache L2.

Adobe recommande de n’activer l’option use_stale_cache que pour les types de cache qui en bénéficient le plus, notamment :

  • block_html
  • config_integration_api
  • config_integration
  • full_page
  • layout
  • reflection
  • translate

Adobe déconseille d'activer l'option use_stale_cache pour le type de cache default.

Le code suivant illustre un exemple de configuration :

'cache' => [
    'frontend' => [
        'default' => [
            'backend' => '\\Magento\\Framework\\Cache\\Backend\\RemoteSynchronizedCache',
            'backend_options' => [
                'remote_backend' => '\\Magento\\Framework\\Cache\\Backend\\Redis',
                'remote_backend_options' => [
                    'persistent' => 0,
                    'server' => 'localhost',
                    'database' => '0',
                    'port' => '6379',
                    'password' => '',
                    'compress_data' => '1',
                ],
                'local_backend' => 'Cm_Cache_Backend_File',
                'local_backend_options' => [
                    'cache_dir' => '/dev/shm/'
                ]
            ],
            'frontend_options' => [
                'write_control' => false,
            ],
        ],
         'stale_cache_enabled' => [
            'backend' => '\\Magento\\Framework\\Cache\\Backend\\RemoteSynchronizedCache',
            'backend_options' => [
                'remote_backend' => '\\Magento\\Framework\\Cache\\Backend\\Redis',
                'remote_backend_options' => [
                    'persistent' => 0,
                    'server' => 'localhost',
                    'database' => '0',
                    'port' => '6379',
                    'password' => '',
                    'compress_data' => '1',
                ],
                'local_backend' => 'Cm_Cache_Backend_File',
                'local_backend_options' => [
                    'cache_dir' => '/dev/shm/'
                ],
                'use_stale_cache' => true,
            ],
            'frontend_options' => [
                'write_control' => false,
            ],
        ]
    ],
    'type' => [
        'default' => ['frontend' => 'default'],
        'layout' => ['frontend' => 'stale_cache_enabled'],
        'block_html' => ['frontend' => 'stale_cache_enabled'],
        'reflection' => ['frontend' => 'stale_cache_enabled'],
        'config_integration' => ['frontend' => 'stale_cache_enabled'],
        'config_integration_api' => ['frontend' => 'stale_cache_enabled'],
        'full_page' => ['frontend' => 'stale_cache_enabled'],
        'translate' => ['frontend' => 'stale_cache_enabled']
    ],
],
recommendation-more-help
386822bd-e32c-40a8-81c2-ed90ad1e198c