Memcached für Sitzungsspeicherung verwenden

Memcached ist ein universelles, verteiltes Speicher-Caching-System. Es wird häufig verwendet, um dynamische datenbankgesteuerte Websites zu beschleunigen, indem Daten und Objekte im RAM zwischengespeichert werden, um die Anzahl der Lesevorgänge für eine externe Datenquelle (z. B. eine Datenbank oder API) zu reduzieren.

Memcached bietet eine große Hash-Tabelle, die auf mehrere Computer verteilt werden kann. Wenn die Tabelle voll ist, führen nachfolgende Einfügungen dazu, dass ältere Daten in der Reihenfolge der am wenigsten verwendeten (LRU) bereinigt werden. Die Größe dieser Hash-Tabelle ist häufig sehr groß. (Source: memcached.org)

Commerce verwendet memcached für die Sitzungsspeicherung, aber nicht für die Seitenzwischenspeicherung. Für das Zwischenspeichern von Seiten empfehlen wir Redis oder Varnish.

So konfigurieren Sie Commerce für die Verwendung von memcached:

  1. Öffnen Sie <your install dir>/app/etc/env.php in einem Texteditor.

  2. Suchen Sie Folgendes:

    code language-php
    'session' =>
        array (
        'save' => 'files',
    ),
    
  3. Ändern Sie sie wie folgt:

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

    Memcached verfügt über optionale Startparameter, die den Rahmen dieses Handbuchs sprengen. Weitere Informationen dazu finden Sie in der memcached-Dokumentation, im Quell-Code und in den Änderungsprotokollen.

  4. Fahren Sie mit dem nächsten Abschnitt fort.

So überprüfen Sie, ob memcached mit Commerce funktioniert:

  1. Löschen Sie den Inhalt der folgenden Ordner unter Ihrem Commerce-Installationsverzeichnis:

    code language-bash
    rm -rf var/cache/* var/page_cache/* var/session/*
    
  2. Zu einer beliebigen Seite der Storefront gehen.

  3. Melden Sie sich bei Admin an und navigieren Sie zu mehreren Seiten.

    Wenn keine Fehler angezeigt werden, herzlichen Glückwunsch! Memcached funktioniert! Optional können Sie sich den memcached-Speicher ansehen, wie im nächsten Schritt beschrieben.

    Wenn Fehler angezeigt werden (z. B. HTTP 500 (Interner Server-Fehler), aktivieren Sie den Entwicklermodus und diagnostizieren Sie das Problem. Stellen Sie sicher, dass memcached ausgeführt und ordnungsgemäß konfiguriert wird und dass env.php keine Syntaxfehler aufweist.

  4. (Optional) Verwenden Sie Telnet, um einen Blick auf den Memcached-Speicher zu werfen.

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

    Die Ergebnisse werden in etwa wie folgt angezeigt:

    code language-none
    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