Usa memcached per l’archiviazione della sessione

Memcached è un sistema di caching di memoria distribuito per scopi generici. Viene spesso utilizzato per velocizzare i siti web dinamici basati su database memorizzando nella cache dati e oggetti nella RAM per ridurre il numero di volte in cui è necessario leggere un’origine dati esterna (ad esempio un database o un’API).

Memcached fornisce una tabella hash di grandi dimensioni che può essere distribuita su più computer. Quando la tabella è piena, gli inserimenti successivi causano l'eliminazione dei dati meno recenti in base all'ordine LRU utilizzato di recente. La dimensione di questa tabella hash è spesso molto grande. (Source: memcached.org)

Commerce utilizza memcached per l’archiviazione della sessione ma non per il caching delle pagine. Per il caching delle pagine, consigliamo Redis o Varnish.

Per configurare Commerce per l'utilizzo di memcached:

  1. Apri <your install dir>/app/etc/env.php in un editor di testo.

  2. Individua quanto segue:

    code language-php
    'session' =>
        array (
        'save' => 'files',
    ),
    
  3. Modificalo come segue:

    code language-php
    'session' =>
        array (
          'save' => 'memcached',
          'save_path' => '<memcache ip or host>:<memcache port>'
    ),
    

    memcached dispone di parametri di avvio facoltativi che vanno oltre l’ambito di questa guida. Per ulteriori informazioni, consulta la documentazione di memcached, il codice sorgente e i registri delle modifiche.

  4. Procedi alla sezione successiva.

Per verificare il funzionamento di memcached con Commerce:

  1. Eliminare il contenuto delle directory seguenti nella directory di installazione di Commerce:

    code language-bash
    rm -rf var/cache/* var/page_cache/* var/session/*
    
  2. Vai a qualsiasi pagina della vetrina.

  3. Accedi all’amministratore e individua diverse pagine.

    Se non vengono visualizzati errori, congratulazioni! memcached funziona. Facoltativamente, puoi esaminare l’archiviazione memcached come descritto nel passaggio successivo.

    Se vengono visualizzati degli errori (ad esempio, HTTP 500 (Errore interno del server)), abilita la modalità sviluppatore e diagnostica il problema. Verificare che memcached sia in esecuzione, configurato correttamente e che env.php non presenti errori di sintassi.

  4. (Facoltativo) Utilizza Telnet per esaminare l’archiviazione memorizzata in memcache.

    code language-bash
    telnet <memcached host or ip> <memcached port>
    
    code language-bash
    stats items
    

    I risultati vengono visualizzati in modo simile al seguente:

    code language-terminal
    STAT items:3:number 1
    STAT items:3:age 7714
    STAT items:3:evicted 0
    STAT items:3:evicted_nonzero 0
    STAT items:3:evicted_time 0
    STAT items:3:outofmemory 0
    STAT items:3:tailrepairs 0
    
    [Look at the keys in more detail](https://darkcoding.net/software/memcached-list-all-keys/)
    
recommendation-more-help
386822bd-e32c-40a8-81c2-ed90ad1e198c