セッション ストレージにmemcachedを使用
Memcachedは、汎用の分散型メモリキャッシングシステムです。 多くの場合、RAMにデータとオブジェクトをキャッシュすることで、外部データソース(データベースやAPIなど)を読み取る必要がある回数を減らし、動的なデータベース駆動型のweb サイトを高速化するために使用されます。
Memcachedは、複数のマシンに分散できる大規模なハッシュテーブルを提供します。 テーブルがいっぱいになると、後続の挿入によって、古いデータが最も最近使用されていない(LRU)順序で消去されます。 このハッシュテーブルのサイズは非常に大きいことがよくあります。 (Source: memcached.org)
Commerceでは、セッションの保存にmemcachedを使用しますが、ページキャッシュには使用しません。 ページキャッシュについては、RedisまたはVarnishをお勧めします。
Commerceでmemcachedを使用するように設定するには:
-
<your install dir>/app/etc/env.phpをテキストエディターで開きます。 -
次の場所を探します。
code language-php 'session' => array ( 'save' => 'files', ), -
次のように変更します。
code language-php 'session' => array ( 'save' => 'memcached', 'save_path' => '<memcache ip or host>:<memcache port>' ),memcachedには、このガイドの範囲を超えるオプションの起動パラメーターがあります。 詳細については、memcached ドキュメント、ソースコード、および変更履歴を参照してください。
-
次のセクションに進みます。
MemcachedがCommerceで動作することを確認するには:
-
Commerce インストールディレクトリの下にある次のディレクトリの内容を削除します。
code language-shell rm -rf var/cache/* var/page_cache/* var/session/* -
ストアフロントの任意のページに移動します。
-
管理者にログインし、複数のページを参照します。
エラーが表示されない場合は、おめでとうございます。 memcachedが動作しています。 オプションとして、次の手順で説明するように、memcached ストレージを調べることができます。
エラーが表示された場合(HTTP 500 (内部サーバーエラー)は、開発者モードを有効にして問題を診断します。 memcachedが実行され、適切に設定され、
env.phpに構文エラーがないことを確認してください。 -
(オプション) 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/)