セッションストレージに Redis を使用
Commerceには、Redis セッションストレージを設定するためのコマンドラインオプションが追加されました。 以前のリリースでは、<Commerce install dir>app/etc/env.php
ファイルを編集していました。 コマンドラインで検証を行う場合や、このコマンドラインを使用して設定することをお勧めしますが、env.php
ファイルは編集できます。
setup:config:set
コマンドを実行し、Redis 固有のパラメーターを指定します。
bin/magento setup:config:set --session-save=redis --session-save-redis-<parameter_name>=<parameter_value>...
ここで、
--session-save=redis
は Redis セッションストレージを有効にします。 この機能が既に有効になっている場合は、このパラメーターを省略します。
セッションストレージを構成するパラメーターと値のペアのリストを --session-save-redis-<parameter_name>=<parameter_value>
に示します。
phpredis および php-fpm の既知の問題。
重要:複数のタイプのキャッシュに Redis を使用する場合は、データベース番号が異なっている必要があります。 デフォルトのキャッシュ データベース番号を 0、ページ キャッシュ データベース番号を 1、セッション ストレージ データベース番号を 2 に割り当てることをお勧めします。
最小の詳細から最大の詳細の順にリストされた次のいずれかに設定します:
- 0 (緊急:最も重大なエラーのみ)
- 1 (アラート:直ちにアクションが必要)
- 2 (重大:アプリケーションコンポーネントを使用できない)
- 3 (エラー:実行時エラー。重要ではありませんが監視する必要があります)
- 4 (警告:追加情報、推奨)
- 5 (注意:正常だが重大な状態)
- 6 (情報:情報メッセージ)
- 7 (デバッグ:開発またはテスト用の最も多い情報のみ)
例
次の例では、Redis をセッション データ ストアとして設定し、ホストを 127.0.0.1
に設定し、ログ レベルを 4 に設定し、データベース番号を 2 に設定します。 その他のパラメーターはすべてデフォルト値に設定されます。
bin/magento setup:config:set --session-save=redis --session-save-redis-host=127.0.0.1 --session-save-redis-log-level=4 --session-save-redis-db=2
結果
Commerceは、次のような行を <magento_root>app/etc/env.php
に追加します。
'session' => [
'save' => 'redis',
'redis' => [
'host' => '127.0.0.1',
'port' => '6379',
'password' => '',
'timeout' => '2.5',
'persistent_identifier' => '',
'database' => '2',
'compression_threshold' => '2048',
'compression_library' => 'gzip',
'log_level' => '4',
'max_concurrency' => '6',
'break_after_frontend' => '5',
'break_after_adminhtml' => '30',
'first_lifetime' => '600',
'bot_first_lifetime' => '60',
'bot_lifetime' => '7200',
'disable_locking' => '0',
'min_lifetime' => '60',
'max_lifetime' => '2592000',
],
],
Redis 接続の確認
Redis とCommerceが連携していることを確認するには、Redis を実行しているサーバにログインし、ターミナルを開いて Redis monitor コマンドまたは ping コマンドを使用します。
Redis モニターコマンド
redis-cli monitor
セッションストレージ出力のサンプル:
1476824834.187250 [0 127.0.0.1:52353] "select" "0"
1476824834.187587 [0 127.0.0.1:52353] "hmget" "sess_sgmeh2k3t7obl2tsot3h2ss0p1" "data" "writes"
1476824834.187939 [0 127.0.0.1:52353] "expire" "sess_sgmeh2k3t7obl2tsot3h2ss0p1" "1200"
1476824834.257226 [0 127.0.0.1:52353] "select" "0"
1476824834.257239 [0 127.0.0.1:52353] "hmset" "sess_sgmeh2k3t7obl2tsot3h2ss0p1" "data" "_session_validator_data|a:4:{s:11:\"remote_addr\";s:12:\"10.235.34.14\";s:8:\"http_via\";s:0:\"\";s:20:\"http_x_forwarded_for\";s:0:\"\";s:15:\"http_user_agent\";s:115:\"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36\";}_session_hosts|a:1:{s:12:\"10.235.32.10\";b:1;}admin|a:0:{}default|a:2:{s:9:\"_form_key\";s:16:\"e331ugBN7vRjGMgk\";s:12:\"visitor_data\";a:3:{s:13:\"last_visit_at\";s:19:\"2016-10-18 21:06:37\";s:10:\"session_id\";s:26:\"sgmeh2k3t7obl2tsot3h2ss0p1\";s:10:\"visitor_id\";s:1:\"9\";}}adminhtml|a:0:{}customer_base|a:1:{s:20:\"customer_segment_ids\";a:1:{i:1;a:0:{}}}checkout|a:0:{}" "lock" "0"
... more ...
Redis ping コマンド
redis-cli ping
応答は PONG
のようになります。
両方のコマンドが成功すると、Redis が正しく設定されます。
圧縮データの検査
RESP.app は、圧縮されたセッションデータとページキャッシュを検査するために、Commerce 2 Session and Page cache の自動解凍をサポートし、PHP セッションデータを人間が読み取り可能な形式で表示します。