セッション ストレージにmemcachedを使用

Memcachedは、汎用の分散型メモリキャッシングシステムです。 多くの場合、RAMにデータとオブジェクトをキャッシュすることで、外部データソース(データベースやAPIなど)を読み取る必要がある回数を減らし、動的なデータベース駆動型のweb サイトを高速化するために使用されます。

Memcachedは、複数のマシンに分散できる大規模なハッシュテーブルを提供します。 テーブルがいっぱいになると、後続の挿入によって、古いデータが最も最近使用されていない(LRU)順序で消去されます。 このハッシュテーブルのサイズは非常に大きいことがよくあります。 (Source: memcached.org

Commerceでは、セッションの保存にmemcachedを使用しますが、ページキャッシュには使用しません。 ページキャッシュについては、RedisまたはVarnishをお勧めします。

Commerceでmemcached​を使用するように設定するには:

  1. <your install dir>/app/etc/env.phpをテキストエディターで開きます。

  2. 次の場所を探します。

    code language-php
    'session' =>
        array (
        'save' => 'files',
    ),
    
  3. 次のように変更します。

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

    memcachedには、このガイドの範囲を超えるオプションの起動パラメーターがあります。 詳細については、memcached ドキュメント、ソースコード、および変更履歴を参照してください。

  4. 次のセクションに進みます。

MemcachedがCommerceで動作することを確認するには:

  1. Commerce インストールディレクトリの下にある次のディレクトリの内容を削除します。

    code language-shell
    rm -rf var/cache/* var/page_cache/* var/session/*
    
  2. ストアフロントの任意のページに移動します。

  3. 管理者にログインし、複数のページを参照します。

    エラーが表示されない場合は、おめでとうございます。 memcachedが動作しています。 オプションとして、次の手順で説明するように、memcached ストレージを調べることができます。

    エラーが表示された場合(HTTP 500 (内部サーバーエラー)は、開発者モードを有効にして問題を診断します。 memcachedが実行され、適切に設定され、env.phpに構文エラーがないことを確認してください。

  4. (オプション) Telnetを使用してmemcached ストレージを調べます。

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

    結果は次のように表示されます。

    code language-text
    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
commerce-operations-help-configuration