L2-cachekonfiguration

Cachelagring ger en minskning av nätverkstrafiken mellan lagringsutrymmet i fjärrcachen och Commerce-programmet. En standardinstans i Commerce överför cirka 300 kb per begäran, och trafiken kan snabbt öka till över cirka 1 000 förfrågningar i vissa situationer.

Om du vill minska nätverksbandbredden till Redis sparar du cachedata lokalt på varje webbnod och använder fjärrcachen i två syften:

  • Kontrollera cachedataversionen och se till att den senaste cachen lagras lokalt
  • Överför den senaste cachen från fjärrdatorn till den lokala datorn

Commerce lagrar den hash-kodade dataversionen i Redis, med suffixet ':hash' efter den vanliga nyckeln. Om det finns ett föråldrat lokalt cacheminne överförs data till den lokala datorn med ett cacheminne.

INFO
För Adobe Commerce i molninfrastruktur kan du använda distribuera variabler för L2-cachekonfiguration.

Konfigurationsexempel

Använd följande exempel för att ändra eller ersätta det befintliga cacheavsnittet i filen 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'],
    ],
],

Var:

  • backend är L2-cacheimplementeringen.

  • backend_options är L2-cachekonfigurationen.

    • remote_backend är fjärrexplementeringen av cachen: Redis eller MySQL.
    • remote_backend_options är fjärrcachekonfigurationen.
    • local_backend är den lokala cacheimplementeringen: Cm_Cache_Backend_File
    • local_backend_options är den lokala cachekonfigurationen.
    • cache_dir är ett filcachespecifikt alternativ för den katalog där det lokala cacheminnet lagras.

Adobe rekommenderar att Redis används för fjärrcachelagring (\Magento\Framework\Cache\Backend\Redis) och Cm_Cache_Backend_File för lokal cachelagring av data i delat minne, med: 'local_backend_options' => ['cache_dir' => '/dev/shm/']

Adobe rekommenderar att du använder funktionen cache preload eftersom den drastiskt minskar trycket på Redis. Glöm inte att lägga till suffixet ':hash' för förinläsningsnycklar.

Alternativ för inaktuell cache

Från och med Commerce 2.4 kan alternativet use_stale_cache förbättra prestandan i vissa specifika fall.

I allmänhet accepteras en kompromiss med låsväntetider från prestandasidan, men ju fler block eller cacheminne handlaren har desto mer tid går det att vänta på lås. I vissa scenarier kan du vänta i antal tangenter * timeout så länge som processen pågår. I vissa sällsynta fall kan handlaren ha hundratals nycklar i cachen Block/Config, så även en liten timeout för låsningen kan kosta sekunder.

Inaktuell cache fungerar bara med L2-cache. Med ett inaktuellt cacheminne kan du skicka ett inaktuellt cacheminne, medan ett nytt genereras i en parallell process. Om du vill aktivera inaktuell cache lägger du till 'use_stale_cache' => true i den översta konfigurationen för L2-cachen.

Adobe rekommenderar att du bara aktiverar alternativet use_stale_cache för de cachetyper som drar störst nytta av det, bland annat:

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

Adobe rekommenderar inte att du aktiverar alternativet use_stale_cache för cachetypen default.

I följande kod visas en exempelkonfiguration:

'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