Utiliser la mémoire mise en cache pour le stockage de session

Memcached est un système de mise en cache de mémoire distribuée d’usage général. Il est souvent utilisé pour accélérer les sites web dynamiques pilotés par la base de données en mettant en cache des données et des objets dans la mémoire RAM afin de réduire le nombre de fois où une source de données externe (telle qu’une base de données ou une API) doit être lue.

Memcached fournit une grande table de hachage qui peut être distribuée sur plusieurs machines. Lorsque le tableau est plein, les insertions suivantes provoquent la purge des données plus anciennes dans l’ordre des données les moins récemment utilisées (LRU). La taille de cette table de hachage est souvent très grande. (Source : memcached.org)

Commerce utilise la mémoire mise en cache pour le stockage de session, mais pas pour la mise en cache de page. Pour la mise en cache des pages, nous recommandons Redis ou Varnish.

Pour configurer Commerce afin d’utiliser memcached :

  1. Ouvrez <your install dir>/app/etc/env.php dans un éditeur de texte.

  2. Recherchez les éléments suivants :

    code language-php
    'session' =>
        array (
        'save' => 'files',
    ),
    
  3. Modifiez-le comme suit :

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

    memmis en cache comporte des paramètres de démarrage facultatifs qui vont au-delà de la portée de ce guide. Vous trouverez plus d’informations à leur sujet dans la documentation memcached, le code source et les logs de modification.

  4. Passez à la section suivante.

Pour vérifier que la mémoire mise en cache fonctionne avec Commerce :

  1. Supprimez le contenu des répertoires suivants sous le répertoire d’installation de Commerce :

    code language-bash
    rm -rf var/cache/* var/page_cache/* var/session/*
    
  2. Accédez à n’importe quelle page du storefront.

  3. Connectez-vous à l’administrateur et accédez à plusieurs pages.

    Si aucune erreur ne s'affiche, félicitations ! memcached fonctionne ! Vous pouvez éventuellement examiner le stockage en mémoire cache comme décrit à l’étape suivante.

    Si des erreurs s’affichent (par exemple, un HTTP 500 (Erreur interne du serveur)), activez le mode Développeur et diagnostiquez le problème. Assurez-vous que memcached est en cours d'exécution, configuré correctement et que env.php n'a aucune erreur de syntaxe.

  4. (Facultatif) Utilisez Telnet pour examiner le stockage en mémoire cache.

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

    Les résultats s’affichent comme suit :

    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