Otimização Magento 2

Como utilizar o Memcache no Magento 2

Passo a passo ensinando a como configurar o Memcache no Magento 2.

O que é Memcache?

Memcache é o módulo que fornece a relação processual e orientada a objeto para o memcached, cache daemon altamente eficaz, que foi especialmente projetado para reduzir a carga de banco de dados em aplicações dinâmicas

O Magento irá utilizar o memcached para armazenamento de sessão, mas não para o cache de página. Para o cache de páginas, recomendamos Redis ou Varnish.

Observação: é necessário que o módulo esteja corretamente instalado e habilitado em seu servidor web para que você possa utiliza-lo.

Configurando o Memcache no Magento 2

Primeiro passo é editar o arquivo env.php que está localizado no diretório: app/etc/env.php

Altere:

'session' =>
   array (
   'save' => 'files',
),

Para:

'session' =>
   array (
      'save' => 'memcache',
      'save_path' => 'tcp://<memcache ip or host>:<memcache port>'
),

Para verificar a utilização do memcached, delete o conteúdo dos seguintes diretórios:

  • var/cache
  • var/page_cache
  • var/session

Utilize o comando:

rm -rf var/cache/* var/page_cache/* var/session/*

Navegue por qualquer página no frontend e backend, se nenhum erro ocorrer a configuração está correta.

Caso ocorra um erro, como: HTTP 500 (Internal Server Error), verifique se você cometeu algum erro de sintaxe no arquivo env.php e se o módulo está devidamente instalado e configurado para o PHP em seu servidor.

Tanto o memcache quanto o memcached têm parâmetros de inicialização opcionais que estão além do escopo deste post.

Você pode encontrar mais informações sobre eles na documentação memcache ou memcached.

Adicional: Memcache no Magento 2

Verificando se o memcache está instalado no PHP.

Utilize o seguinte código:

<?php
if (class_exists('Memcache')) {
    $server = 'localhost';
    if (!empty($_REQUEST['server'])) {
        $server = $_REQUEST['server'];
    }
    $memcache = new Memcache;
    $isMemcacheAvailable = @$memcache->connect($server);

    if ($isMemcacheAvailable) {
        $aData = $memcache->get('data');
        echo '<pre>';
        if ($aData) {
            echo '<h2>Data from Cache:</h2>';
            print_r($aData);
        } else {
            $aData = array(
                'me' => 'you',
                'us' => 'them',
            );
            echo '<h2>Fresh Data:</h2>';
            print_r($aData);
            $memcache->set('data', $aData, 0, 300);
        }
        $aData = $memcache->get('data');
        if ($aData) {
            echo '<h3>Memcache seem to be working fine!</h3>';
        } else {
            echo '<h3>Memcache DOES NOT seem to be working!</h3>';
        }
        echo '</pre>';
    }
}
if (!$isMemcacheAvailable) {
    echo 'Memcache not available';
}

?>

Execute pelo o browser e verifique o output.

Você também pode utilizar o comando:

php -m | grep memcache

Ou o comando a seguir para listar todos os módulos habilitados no PHP:

php -m

 

Post Recentes

Bloquear .env e .git no nginx: as regras que ainda deixam o arquivo vazar

Negar /.env no nginx parece resolvido até alguém pedir /wp-content/uploads/.env ou backup.sql. As regras que testei e os furos que…

12 horas atrás

Canonical errado no Yoast: corrigindo pelo filtro wpseo_canonical

O Search Console marca suas páginas 2, 3 e 4 como alternativas da página 1? Ajuste a tag canônica do…

16 horas atrás

Layout XML do Magento 2: remover bloco de módulo de terceiro

Um módulo de terceiro plantou um banner no topo da loja e você não quer desinstalar nada: tire o bloco…

1 dia atrás

Restaurar dump do Magento 2 em outro servidor: trocar a base_url no SQL

Importou o banco de produção e o site pula para o domínio antigo? Rode o UPDATE em core_config_data, limpe o…

2 dias atrás

Criar exceção customizada em PHP: quando estender Exception compensa

Seu catch trata pedido inexistente e banco fora do ar do mesmo jeito. Veja como criar exceção customizada em PHP…

3 dias atrás

DataProvider Magento 2: form do admin abre com campos vazios ao editar

O form do admin salva mas abre em branco na edição: veja o getData() indexado pelo id da entidade e…

4 dias atrás