Använd Redis för sessionslagring
Commerce har nu kommandoradsalternativ för att konfigurera Redis-sessionslagring. I tidigare versioner redigerade du filen <Commerce install dir>app/etc/env.php
. Kommandoraden innehåller validering och är den rekommenderade konfigurationsmetoden, men du kan fortfarande redigera filen env.php
.
Kör kommandot setup:config:set
och ange Redis-specifika parametrar.
bin/magento setup:config:set --session-save=redis --session-save-redis-<parameter_name>=<parameter_value>...
där
--session-save=redis
aktiverar Redis-sessionslagring. Om den här funktionen redan har aktiverats utelämnar du den här parametern.
--session-save-redis-<parameter_name>=<parameter_value>
är en lista över parameter-/värdepar som konfigurerar sessionslagring:
Kända fel med phpredis och php-fpm.
Viktigt: Om du använder Redis för mer än en typ av cachelagring måste databasnumren vara olika. Vi rekommenderar att du tilldelar standardvärdet för cachningsdatabasen till 0, sidcachningsdatabasnumret till 1 och sessionslagringsdatabasnumret till 2.
suhosin.session.encrypt = On
).Känt fel med strängar som är större än 64 kB.
Ange något av följande, i ordning från minst utförlig till mest utförlig:
- 0 (kris: endast de allvarligaste felen)
- 1 (varning: omedelbar åtgärd krävs)
- 2 (kritiskt: programkomponenten är inte tillgänglig)
- 3 (fel: körningsfel, inte kritiska men måste övervakas)
- 4 (varning: ytterligare information rekommenderas)
- 5 (observera: normalt men signifikant tillstånd)
- 6 (info: informationsmeddelanden)
- 7 (debug: the most information for development or testing only)
Exempel
I följande exempel ställs Redis in som sessionsdatalager, värden ställs in på 127.0.0.1
, loggnivån ställs in på 4 och databasnumret ställs in på 2. Alla andra parametrar ställs in på standardvärdet.
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
Resultat
Commerce lägger till rader som liknar följande i <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',
],
],
Bekräfta Redis-anslutning
Om du vill verifiera att Redis och Commerce fungerar tillsammans loggar du in på servern som kör Redis, öppnar en terminal och använder kommandot Redis monitor eller ping.
Redis-bildskärm, kommando
redis-cli monitor
Exempel på sessionslagringsutdata:
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, kommando
redis-cli ping
PONG
ska vara svaret.
Om båda kommandona lyckades är Redis korrekt konfigurerat.
Inspektera komprimerade data
Om du vill inspektera komprimerade sessionsdata och sidcache stöder RESP.app automatisk dekomprimering av Commerce 2 Session och Page Cache och visar PHP-sessionsdata i en läsbar form.