Utilisation de Redis pour le stockage de session
Commerce fournit désormais des options de ligne de commande pour configurer le stockage de session Redis. Dans les versions précédentes, vous avez modifié le fichier <Commerce install dir>app/etc/env.php
. La ligne de commande permet la validation et constitue la méthode de configuration recommandée, mais vous pouvez toujours modifier le fichier env.php
.
Exécutez la commande setup:config:set
et spécifiez des paramètres spécifiques à Redis.
bin/magento setup:config:set --session-save=redis --session-save-redis-<parameter_name>=<parameter_value>...
où
--session-save=redis
active le stockage de session Redis. Si cette fonctionnalité a déjà été activée, omettez ce paramètre.
--session-save-redis-<parameter_name>=<parameter_value>
une liste de paires paramètre/valeur qui configurent le stockage de session :
Problèmes connus liés à phpredis et php-fpm.
Important : si vous utilisez Redis pour plusieurs types de mise en cache, les numéros de base de données doivent être différents. Il est recommandé d'attribuer le numéro de base de données de mise en cache par défaut à 0, le numéro de base de données de mise en cache de page à 1 et le numéro de base de données de stockage de session à 2.
suhosin.session.encrypt = On
).Problème connu avec les chaînes de plus de 64 Ko.
Définissez sur l’une des options suivantes, répertoriées dans l’ordre du moins détaillé au plus détaillé :
- 0 (urgence : seulement les erreurs les plus graves)
- 1 (alerte : action immédiate requise)
- 2 (critique : composant d’application non disponible)
- 3 (erreur : erreurs d’exécution, non critiques, mais doivent être surveillées)
- 4 (avertissement : informations supplémentaires, recommandé)
- 5 (avis : état normal mais significatif)
- 6 (info : messages informatifs)
- 7 (débogage : le plus d’informations pour le développement ou le test uniquement)
Exemple
L’exemple suivant définit Redis comme magasin de données de session, définit l’hôte sur 127.0.0.1
, définit le niveau de journal sur 4 et définit le numéro de base de données sur 2. Tous les autres paramètres sont définis sur la valeur par défaut.
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
Résultat
Commerce ajoute des lignes similaires à ce qui suit à <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',
],
],
Vérifier la connexion Redis
Pour vérifier que Redis et Commerce fonctionnent ensemble, connectez-vous au serveur exécutant Redis, ouvrez un terminal et utilisez la commande Redis monitor ou la commande ping.
Commande Redis monitor
redis-cli monitor
Exemple de sortie de stockage de session :
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 ...
Commande de redimensionnement
redis-cli ping
PONG
devrait être la réponse.
Si les deux commandes ont réussi, Redis est correctement configuré.
Inspection des données compressées
Pour inspecter les données de session compressées et le cache de page, le RESP.app prend en charge la décompression automatique du cache de session et de page de Commerce 2 et affiche les données de session PHP sous une forme lisible par l'utilisateur.