Utiliser Valkey pour le cache par défaut
Commerce fournit des options de ligne de commande pour configurer la page Valkey et la mise en cache par défaut. Bien que vous puissiez configurer la mise en cache en modifiant le fichier <Commerce-install-dir>app/etc/env.php
, il est recommandé d’utiliser la ligne de commande, en particulier pour les configurations initiales. La ligne de commande permet de valider en s’assurant que la configuration est correcte sur le plan syntaxique.
Vous devez installer Valkey avant de continuer.
Configurer la mise en cache par défaut de Valkey
Exécutez la commande setup:config:set
et spécifiez les paramètres de mise en cache par défaut de Valkey.
bin/magento setup:config:set --cache-backend=valkey --cache-backend-valkey-<parameter>=<value>...
-
--cache-backend=valkey
active la mise en cache par défaut de valkey. Si cette fonctionnalité a déjà été activée, omettez ce paramètre. -
--cache-backend-valkey-<parameter>=<value>
une liste de paires clé-valeur qui configurent la mise en cache par défaut :
bin/magento setup:config:set --cache-backend=redis --cache-backend-valkey-<parameter>=<value>...
cache-backend-valkey-server
127.0.0.1
indique que Valkey est installé sur le serveur Commerce.127.0.0.1
cache-backend-valkey-port
6379
cache-backend-valkey-db
0
par défaut.Important : si vous utilisez Valkey pour plusieurs types de mise en cache, les numéros de base de données doivent être différents. Adobe recommande 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
.0
cache-backend-valkey-password
auth
, qui nécessite que les clients s’authentifient pour accéder à la base de données. Le mot de passe est configuré directement dans le fichier de configuration de Valkey : /etc/valkey/valkey.conf
Exemple de commande
L'exemple suivant active la mise en cache par défaut de Valkey, définit l'hôte sur 127.0.0.1
et affecte le numéro de base de données à 0
. Valkey utilise les valeurs par défaut pour tous les autres paramètres.
bin/magento setup:config:set --cache-backend=valkey --cache-backend-valkey-server=127.0.0.1 --cache-backend-valkey-db=0
bin/magento setup:config:set --cache-backend=redis --cache-backend-redis-server=127.0.0.1 --cache-backend-redis-db=0
Configuration de la mise en cache de pages
Pour configurer la mise en cache des pages Valkey sur Commerce, exécutez la commande setup:config:set
avec des paramètres supplémentaires.
bin/magento setup:config:set --page-cache=valkey --page-cache-valkey-<parameter>=<value>...
Avec les paramètres suivants :
-
--page-cache=valkey
active la mise en cache de page Valkey. Si cette fonctionnalité a déjà été activée, omettez ce paramètre. -
--page-cache-valkey-<parameter>=<value>
une liste de paires clé-valeur qui configurent la mise en cache de page :
bin/magento setup:config:set --page-cache=redis --page-cache-redis-<parameter>=<value>...
page-cache-valkey-server
127.0.0.1
indique que Valkey est installé sur le serveur Commerce.127.0.0.1
page-cache-valkey-port
6379
page-cache-valkey-db
0
par défaut.Important : si vous utilisez Valkey 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
.0
page-cache-valkey-password
auth
, qui nécessite que les clients s’authentifient pour accéder à la base de données. Configurez le mot de passe dans le fichier de configuration Valkey : /etc/valkey/valkey.conf
Exemple de commande
L'exemple suivant active la mise en cache de page Valkey, définit l'hôte sur 127.0.0.1
et affecte le numéro de base de données à 1
. Tous les autres paramètres sont définis sur la valeur par défaut.
bin/magento setup:config:set --page-cache=valkey --page-cache-valkey-server=127.0.0.1 --page-cache-valkey-db=1
bin/magento setup:config:set --page-cache=redis --page-cache-redis-server=127.0.0.1 --page-cache-valkey-db=1
Résultats
Suite à ces deux exemples de commandes, Commerce ajoute des lignes similaires à ce qui suit à <Commerce-install-dir>app/etc/env.php
:
'cache' => [
'frontend' => [
'default' => [
'backend' => 'Magento\\Framework\\Cache\\Backend\\Valkey',
'backend_options' => [
'server' => '127.0.0.1',
'database' => '0',
'port' => '6379'
],
],
'page_cache' => [
'backend' => 'Magento\\Framework\\Cache\\Backend\\Valkey',
'backend_options' => [
'server' => '127.0.0.1',
'port' => '6379',
'database' => '1',
'compress_data' => '0'
]
]
]
],
Nouvelle implémentation du cache Valkey
[2.4.9-alpha]{class="badge negative" title="Disponible uniquement en version 2.4.9-alpha."}
À partir d’Adobe Commerce 2.4.9, Adobe recommande d’utiliser l’implémentation du cache Valkey : \Magento\Framework\Cache\Backend\Valkey
.
'cache' => [
'frontend' => [
'default' => [
'backend' => '\\Magento\\Framework\\Cache\\Backend\\Valkey',
'backend_options' => [
'server' => '127.0.0.1',
'database' => '0',
'port' => '6379'
],
],
],
Fonction de préchargement Valkey
Comme Commerce stocke les données de configuration dans le cache Valkey, vous pouvez précharger les données réutilisées entre les pages. Pour rechercher les clés qui doivent être préchargées, analysez les données transférées de Valkey vers Commerce. Adobe suggère de précharger les données chargées sur chaque page, telles que SYSTEM_DEFAULT
, EAV_ENTITY_TYPES
et DB_IS_UP_TO_DATE
.
Valkey utilise le pipeline
pour les requêtes de chargement composites. Les clés doivent inclure le préfixe de la base de données. Par exemple, si le préfixe de la base de données est 061_
, la clé de préchargement ressemble à ceci : 061_SYSTEM_DEFAULT
'cache' => [
'frontend' => [
'default' => [
'id_prefix' => '061_',
'backend' => 'Magento\\Framework\\Cache\\Backend\\Valkey',
'backend_options' => [
'server' => 'valkey',
'database' => '0',
'port' => '6379',
'password' => '',
'compress_data' => '1',
'compression_lib' => '',
'preload_keys' => [
'061_EAV_ENTITY_TYPES',
'061_GLOBAL_PLUGIN_LIST',
'061_DB_IS_UP_TO_DATE',
'061_SYSTEM_DEFAULT',
],
]
],
'page_cache' => [
'id_prefix' => '061_'
]
]
]
Lors de l’utilisation de la fonction de préchargement avec un cache L2, vous devez ajouter le suffixe :hash
à vos clés. Le cache L2 transfère uniquement le hachage des données, et non les données réelles.
'preload_keys' => [
'061_EAV_ENTITY_TYPES:hash',
'061_GLOBAL_PLUGIN_LIST:hash',
'061_DB_IS_UP_TO_DATE:hash',
'061_SYSTEM_DEFAULT:hash',
],
Génération parallèle
À partir de la version 2.4.0 de Commerce, Adobe a introduit l’option allow_parallel_generation
pour les utilisateurs et utilisatrices qui souhaitent éliminer les attentes de verrous.
Il est désactivé par défaut et Adobe recommande de le désactiver jusqu’à ce que vous disposiez de configurations et/ou de blocs excessifs.
Pour activer la génération parallèle :
bin/magento setup:config:set --allow-parallel-generation
Comme il s’agit d’un indicateur , vous ne pouvez pas le désactiver avec une commande. Vous devez définir manuellement la valeur de configuration sur false
:
'cache' => [
'frontend' => [
'default' => [
'id_prefix' => 'b0b_',
'backend' => 'Magento\\Framework\\Cache\\Backend\\Valkey',
'backend_options' => [
'server' => 'redis',
'database' => '0',
'port' => '6379',
'password' => '',
'compress_data' => '1',
'compression_lib' => ''
]
],
'page_cache' => [
'id_prefix' => 'b0b_'
]
],
'allow_parallel_generation' => false
],
Vérifier la connexion Valkey
Pour vérifier que Valkey et Commerce fonctionnent correctement ensemble, connectez-vous au serveur exécutant Valkey, ouvrez un terminal et utilisez la commande valkey-cli monitor
ou la commande redis-cli ping
.
Commande de moniteur Valkey
valkey-cli monitor
Exemple de sortie de mise en cache de page :
1476826133.810090 [0 127.0.0.1:52366] "select" "1"
1476826133.816293 [0 127.0.0.1:52367] "select" "0"
1476826133.817461 [0 127.0.0.1:52367] "hget" "zc:k:ea6_GLOBAL__DICONFIG" "d"
1476826133.829666 [0 127.0.0.1:52367] "hget" "zc:k:ea6_DICONFIG049005964B465901F774DB9751971818" "d"
1476826133.837854 [0 127.0.0.1:52367] "hget" "zc:k:ea6_INTERCEPTION" "d"
1476826133.868374 [0 127.0.0.1:52368] "select" "1"
1476826133.869011 [0 127.0.0.1:52369] "select" "0"
1476826133.869601 [0 127.0.0.1:52369] "hget" "zc:k:ea6_DEFAULT_CONFIG_CACHE_DEFAULT__10__235__32__1080MAGENTO2" "d"
1476826133.872317 [0 127.0.0.1:52369] "hget" "zc:k:ea6_INITIAL_CONFIG" "d"
1476826133.879267 [0 127.0.0.1:52369] "hget" "zc:k:ea6_GLOBAL_PRIMARY_PLUGIN_LIST" "d"
1476826133.883312 [0 127.0.0.1:52369] "hget" "zc:k:ea6_GLOBAL__EVENT_CONFIG_CACHE" "d"
1476826133.898431 [0 127.0.0.1:52369] "hget" "zc:k:ea6_DB_PDO_MYSQL_DDL_STAGING_UPDATE_1" "d"
1476826133.898794 [0 127.0.0.1:52369] "hget" "zc:k:ea6_RESOLVED_STORES_D1BEFA03C79CA0B84ECC488DEA96BC68" "d"
1476826133.905738 [0 127.0.0.1:52369] "hget" "zc:k:ea6_DEFAULT_CONFIG_CACHE_STORE_DEFAULT_10__235__32__1080MAGENTO2" "d"
... more ...
1476826210.634998 [0 127.0.0.1:52439] "hmset" "zc:k:ea6_MVIEW_CONFIG" "d" "a:18:{s:19:\"design_config_dummy\";a:4:{s:7:\"view_id\";s:19:\"design_config_dummy\";s:12:\"action_class\";s:39:\"Magento\\Theme\\Model\\Indexer\\Mview\\Dummy\";s:5:\"group\";s:7:\"indexer\";s:13:\"subscriptions\";a:0:{}}s:14:\"customer_dummy\";a:4:{s:7:\"view_id\";s:14:\"customer_dummy\";s:12:\"action_class\";s:42:\"Magento\\Customer\\Model\\Indexer\\Mview\\Dummy\";s:5:\"group\";s:7:\"indexer\";s:13:\"subscriptions\";a:0:{}}s:13:\"cms_page_grid\";a:4:{s:7:\"view_id\";s:13:\"cms_page_grid\";s:12:\"action_class\";s:43:\"Magento\\Catalog\\Model\\Indexer\\Category\\Flat\";s:5:\"group\";s:7:\"indexer\";s:13:\"subscriptions\";a:1:{s:8:\"cms_page\";a:3:{s:4:\"name\";s:8:\"cms_page\";s:6:\"column\";s:7:\"page_id\";s:18:\"subscription_model\";N;}}}s:21:\"catalog_category_flat\";a:4:{s:7:\"view_id\";s:21:\"catalog_category_flat\";s:12:\"action_class\";s:43:\"Magento\\Catalog\\Model\\Indexer\\Category\\Flat\";s:5:\"group\";s:7:\"indexer\";s:13:\"subscriptions\";a:6:{s:23:\"catalog_category_entity\";a:3:{s:4:\"name\";s:23:\"catalog_category_entity\";s:6:\"column\";s:9:\"entity_id\";s:18:\"subscription_model\";N;}s:31:\"catalog_category_entity_decimal\";a:3:{s:4:\"name\";s:31:\"catalog_category_entity_decimal\";s:6:\"column\";s:9:\"entity_id\";s:18:\"subscription_model\";s:71:\"Magento\\CatalogStaging\\Model\\Mview\\View\\Category\\Attribute\\Subscription\";}s:27:\"catalog_category_entity_int\";a:3:{s:4:\"name\";s:27:\"catalog_category_entity_int\";s:6:\"column\";s:9:\"entity_id\";s:18:\"subscription_model\";s:71:\"Magento\\CatalogStaging\\Model\\Mview\\View\\Category\\Attribute\\Subscription\";}s:28:\"catalog_category_entity_text\";a:3:{s:4:\"name\";s:28:\"catalog_category_entity_text\";s:6:\"column\";s:9:\"entity_id\";s:18:\"subscription_model\";s:71:\"Magento\\CatalogStaging\\Model\\Mview\\View\\Category\\Attribute\\Subscription\";}s:31:\"catalog_category_entity_varchar\";a:3:{s:4:\"name\";s:31:\"catalog_category_entity_varchar\";s:6:\"column\";s:9:\"entity_id\";s:18:\"subscription_model\";s:71:\"Magento\\CatalogStaging\\Model\\Mview\\View\\Category\\Attribute\\Subscription\";}s:32:\"catalog_category_entity_datetime\";a:3:{s:4:\"name\";s:32:\"catalog_category_entity_datetime\";s:6:\"column\";s:9:\"entity_id\";s:18:\"subscription_model\";s:71:\"Magento\\CatalogStaging\\Model\\Mview\\View\\Category\\Attribute\\Subscription\";}}}s:24:\"catalog_category_product\";a:4:{s:7:\"view_id\";s:24:\"catalog_category_product\";s:12:\"action_class\";s:46:\"Magento\\Catalog\\Model\\Indexer\\Category\\Product\";s:5:\"group\";s:7:\"indexer\";s:13:\"subscriptions\";a:2:{s:23:\"catalog_category_entity\";a:3:{s:4:\"name\";s:23:\"catalog_category_entity\";s:6:\"column\"
... more ...
Commande ping Valkey
redis-cli ping
La réponse attendue est : PONG
Si les deux commandes ont réussi, Valkey 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 de la session Commerce 2 et du cache de page et affiche les données de session PHP dans un format lisible par l'utilisateur.