

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Prise en charge memcached MySQL
<a name="Appendix.MySQL.Options.memcached"></a>

Amazon RDS prend en charge l'utilisation de l'interface `memcached` pour les tableaux InnoDB introduits dans MySQL 5.6. L'API `memcached` permet aux applications d'utiliser les tables InnoDB de la même façon que les magasins de données clé-valeur NoSQL.

**Note**  
L’interface memcached n’est plus disponible dans MySQL 8.4. Lorsque vous mettez à niveau vos instances de base de données vers MySQL 8.4, vous devez les désactiver `memcached` dans les groupes d’options existants.

L'interface `memcached` est un cache simple basé sur les clés. Les applications utilisent `memcached` pour insérer, manipuler et récupérer les paires de données clé-valeur du cache. MySQL 5.6 a présenté un plug-in qui implémente un service démon exposant les données des tables InnoDB via le protocole `memcached`. Pour plus d’informations sur le plug-in MySQL `memcached`, consultez [InnoDB Integration with memcached](https://dev.mysql.com/doc/refman/8.0/en/innodb-memcached.html).

**Pour activer la prise en charge memcached d'une instance de base de données RDS for MySQL**

1. Déterminez le groupe de sécurité à utiliser pour contrôler l'accès à l'interface `memcached`. Si l'ensemble d'applications qui utilise déjà l'interface SQL est identique à celui qui accède à l'interface `memcached`, vous pouvez utiliser le groupe de sécurité VPC existant utilisé par l'interface SQL. Si un ensemble différent d'applications accède à l'interface `memcached`, définissez un nouveau groupe de sécurité VPC ou DB. Pour plus d'informations sur la gestion des groupes de sécurité, consultez [Contrôle d’accès par groupe de sécurité](Overview.RDSSecurityGroups.md) 

1. Créez un groupe d'options de base de données personnalisé, en sélectionnant MySQL comme type et version du moteur. Pour plus d'informations sur la création d'un groupe d'options, consultez [Création d’un groupe d’options](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.Create).

1. Ajoutez l'option `MEMCACHED` au groupe d'options. Spécifiez le port que l'interface `memcached` utilisera, et le groupe de sécurité à utiliser pour contrôler l'accès à l'interface. Pour plus d'informations sur l'ajout d'options, consultez [Ajout d’une option à un groupe d’options](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.AddOption).

1. Modifiez les options pour configurer les paramètres `memcached`, le cas échéant. Pour plus d'informations sur la modification des paramètres d'options, consultez [Modification d’un paramètre d’option](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.ModifyOption).

1. Appliquez le groupe d'options à une instance. Amazon RDS active la prise en charge de `memcached` pour cette instance lorsque le groupe d’options est appliqué :
   + Vous activez la prise en charge `memcached` pour une nouvelle instance en spécifiant le groupe d'options personnalisé lorsque vous lancez l'instance. Pour plus d'informations sur le lancement d'une instance MySQL, consultez [Création d'une instance de base de données Amazon RDS](USER_CreateDBInstance.md).
   + Vous activez la prise en charge `memcached` pour une instance existante en spécifiant le groupe d'options personnalisé lorsque vous modifiez l'instance. Pour de plus amples informations sur la modification d'une instance de base de données, veuillez consulter [Modification d'une instance de base de données Amazon RDS](Overview.DBInstance.Modifying.md).

1. Spécifiez les colonnes de vos tables MySQL accessibles via l'interface `memcached`. Le plug-in `memcached` crée une table de catalogue appelée `containers` dans une base de données dédiée appelée `innodb_memcache`. Vous insérez une ligne dans la table `containers` pour mapper une table InnoDB et y accéder via `memcached`. Vous spécifiez une colonne dans la table InnoDB qui est utilisée pour stocker les valeurs de clé `memcached`, et une ou plusieurs colonnes qui sont utilisées pour stocker les valeurs de données associées à la clé. Vous spécifiez également un nom qu'une application `memcached` utilise pour faire référence à cet ensemble de colonnes. Pour plus d’informations sur l’insertion de lignes dans la table `containers`, consultez [Internals of the InnoDB memcached Plugin](https://dev.mysql.com/doc/refman/8.0/en/innodb-memcached-internals.html). Pour obtenir un exemple de mappage d’une table InnoDB et y accéder via `memcached`, consultez [Writing Applications for the InnoDB memcached Plugin](https://dev.mysql.com/doc/refman/8.0/en/innodb-memcached-developing.html).

1. Si les applications accédant à l'`memcached`interface se trouvent sur des ordinateurs ou des EC2 instances différents de ceux des applications utilisant l'interface SQL, ajoutez les informations de connexion de ces ordinateurs au groupe de sécurité VPC associé à l'instance MySQL. Pour plus d'informations sur la gestion des groupes de sécurité, consultez [Contrôle d’accès par groupe de sécurité](Overview.RDSSecurityGroups.md).

Vous désactivez la prise en charge `memcached` pour une instance en modifiant l'instance et en spécifiant le groupe d'options par défaut pour votre version MySQL. Pour de plus amples informations sur la modification d'une instance de base de données, veuillez consulter [Modification d'une instance de base de données Amazon RDS](Overview.DBInstance.Modifying.md).

## Considérations de sécurité memcached MySQL
<a name="w2aac47c83c15c13"></a>

Le protocole `memcached` ne prend pas en charge l'authentification utilisateur. Pour plus d'informations sur les considérations de sécurité relatives à MySQL `memcached`, consultez [Security Considerations for the InnoDB memcached Plugin](https://dev.mysql.com/doc/refman/8.0/en/innodb-memcached-security.html) (Considérations de sécurité relatives au plug-in InnoDB memcached) dans la documentation MySQL.

Vous pouvez prendre les mesures suivantes pour aider à augmenter la sécurité de l'interface `memcached` :
+ Spécifiez un port différent du port par défaut 11211 lorsque vous ajoutez l'option `MEMCACHED` au groupe d'options.
+ Assurez-vous d'associer l'`memcached`interface à un groupe de sécurité VPC qui limite l'accès aux adresses clients et aux instances connues et EC2 fiables. Pour plus d'informations sur la gestion des groupes de sécurité, consultez [Contrôle d’accès par groupe de sécurité](Overview.RDSSecurityGroups.md).

## Informations de connexion memcached MySQL
<a name="w2aac47c83c15c15"></a>

Pour accéder à l'interface `memcached`, une application doit spécifier le nom DNS de l'instance Amazon RDS et le numéro de port `memcached`. Par exemple, si une instance possède un nom DNS de `my-cache-instance.cg034hpkmmjt.region.rds.amazonaws.com` et l'interface memcached utilise le port 11212, les informations de connexion spécifiées dans PHP seront :

 

```
1. <?php
2. 
3. $cache = new Memcache;
4. $cache->connect('my-cache-instance.cg034hpkmmjt.region.rds.amazonaws.com',11212);
5. ?>
```

**Pour trouver le nom DNS et le port memcached d'une instance de base de données MySQL**

1. Connectez-vous à la console Amazon RDS AWS Management Console et ouvrez-la à [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)l'adresse.

1. Dans le coin supérieur droit du AWS Management Console, sélectionnez la région qui contient l'instance de base de données.

1. Dans la panneau de navigation, choisissez **Databases (Bases de données)**.

1. Choisissez le nom de l'instance de base de données MySQL pour afficher ses détails.

1. Dans la section **Connexion**, notez la valeur du champ **Point de terminaison**. Le nom DNS est le même que le point de terminaison. Veuillez également noter que le port dans la section **Connexion** n'est pas utilisé pour accéder à l'interface `memcached`.

1. Dans la section **Détails**, notez le nom répertorié dans le champ **Groupe d'options**.

1. Dans le panneau de navigation, choisissez **Groupes d’options**.

1. Choisissez le nom du groupe d'options utilisé par l'instance de base de données MySQL pour afficher les détails du groupe d'options. Dans la section **Options**, notez la valeur du paramètre **Port** pour l'option **MEMCACHED**.

## Paramètres d'option memcached MySQL
<a name="w2aac47c83c15c17"></a>

Amazon RDS expose les paramètres `memcached` MySQL comme paramètres d'option dans l'option Amazon RDS `MEMCACHED`.

### Paramètres memcached MySQL
<a name="w2aac47c83c15c17b4"></a>
+  `DAEMON_MEMCACHED_R_BATCH_SIZE` – Nombre entier qui spécifie combien d'opérations de lecture (get) `memcached` doivent être effectuées avant d'exécuter un COMMIT pour lancer une nouvelle transaction. Les valeurs autorisées sont comprises entre 1 et 4294967295, et celle par défaut est 1. L'option ne prend pas effet tant que l'instance n'est pas redémarrée.
+  `DAEMON_MEMCACHED_W_BATCH_SIZE` – Nombre entier qui spécifie combien d'opérations d'écriture `memcached` comme add, set ou incr doivent être effectuées avant d'exécuter un COMMIT pour lancer une nouvelle transaction. Les valeurs autorisées sont comprises entre 1 et 4294967295, et celle par défaut est 1. L'option ne prend pas effet tant que l'instance n'est pas redémarrée.
+  `INNODB_API_BK_COMMIT_INTERVAL` – Nombre entier qui spécifie la fréquence d'auto-commit des connexions inactives qui utilisent l'interface `memcached` InnoDB. Les valeurs autorisées sont comprises entre 1 et 1073741824, et celle par défaut est 5. L'option prend effet immédiatement, sans que vous ayez besoin de redémarrer l'instance.
+  `INNODB_API_DISABLE_ROWLOCK` – Valeur booléenne qui désactive (1 (vrai)) ou active (0 (faux)) l'utilisation des verrouillages de ligne lorsque vous utilisez l'interface `memcached` InnoDB. La valeur par défaut est 0 (faux). L'option ne prend pas effet tant que l'instance n'est pas redémarrée.
+  `INNODB_API_ENABLE_MDL` – Valeur booléenne qui, lorsqu'elle est configurée sur 0 (faux), verrouille la table utilisée par le plug-in `memcached` InnoDB pour ne pas qu'il puisse être abandonné ou modifié par une instruction DDL via l'interface SQL. La valeur par défaut est 0 (faux). L'option ne prend pas effet tant que l'instance n'est pas redémarrée.
+  `INNODB_API_TRX_LEVEL` : nombre entier qui spécifie le niveau d’isolement de la transaction pour les requêtes traitées par l’interface `memcached`. Les valeurs autorisées sont comprises entre 0 et 3. La valeur par défaut est 0. L'option ne prend pas effet tant que l'instance n'est pas redémarrée.

Amazon RDS configure ces paramètres `memcached` MySQL, ils ne peuvent pas être modifiés : `DAEMON_MEMCACHED_LIB_NAME`, `DAEMON_MEMCACHED_LIB_PATH` et `INNODB_API_ENABLE_BINLOG`. Les paramètres que les administrateurs MySQL configurent en utilisant `daemon_memcached_options` sont disponibles comme paramètres d'options `MEMCACHED` individuels dans Amazon RDS.

### Paramètres MySQL daemon\$1memcached\$1options
<a name="w2aac47c83c15c17b6"></a>
+  `BINDING_PROTOCOL`– Chaîne qui spécifie le protocole de liaison à utiliser. Les valeurs autorisées sont `auto`, `ascii` ou `binary`. La valeur par défaut est `auto`, ce qui signifie que le serveur négocie automatiquement le protocole avec le client. L'option ne prend pas effet tant que l'instance n'est pas redémarrée.
+  `BACKLOG_QUEUE_LIMIT` – Nombre entier qui spécifie combien de connexions réseau peuvent être en attente de traitement par `memcached`. L'augmentation de cette limite peut réduire les erreurs reçues par un client qui ne peut pas se connecter à l'instance `memcached`, mais n'améliore pas les performances du serveur. Les valeurs autorisées sont comprises entre 1 et 2048, et celle par défaut est 1024. L'option ne prend pas effet tant que l'instance n'est pas redémarrée.
+  `CAS_DISABLED` – Valeur booléenne qui active (1 (vrai)) ou désactive (0 (faux)) l'utilisation de la fonction CAS (Compare and Swap), ce qui réduit la taille par élément de 8 octets. La valeur par défaut est 0 (faux). L'option ne prend pas effet tant que l'instance n'est pas redémarrée.
+  `CHUNK_SIZE` – Nombre entier qui spécifie la taille minimum du bloc, en octets, à attribuer à la clé, à la valeur et aux indicateurs de l'élément le plus petit. Les valeurs autorisées sont comprises entre 1 et 48. La valeur par défaut est 48 et vous pouvez considérablement améliorer l'efficacité de la mémoire avec une valeur inférieure. L'option ne prend pas effet tant que l'instance n'est pas redémarrée.
+  `CHUNK_SIZE_GROWTH_FACTOR` – Nombre flottant qui contrôle la taille des nouveaux blocs. La taille d'un nouveau bloc correspond à la taille du bloc précédent multipliée par `CHUNK_SIZE_GROWTH_FACTOR`. Les valeurs autorisées sont comprises entre 1 et 2, et celle par défaut est 1.25. L'option ne prend pas effet tant que l'instance n'est pas redémarrée.
+  `ERROR_ON_MEMORY_EXHAUSTED` – Valeur booléenne qui, lorsqu'elle est configurée sur 1 (vrai), spécifie que `memcached` renverra une erreur plutôt que d'expulser les éléments lorsqu'il n'y a plus de mémoire pour les stocker. S'il est configuré sur 0 (faux), `memcached` expulse les éléments s'il n'y a plus de mémoire. La valeur par défaut est 0 (faux). L'option ne prend pas effet tant que l'instance n'est pas redémarrée.
+  `MAX_SIMULTANEOUS_CONNECTIONS` – Nombre entier qui spécifie le nombre maximum de connexions simultanées. La configuration de cette valeur sur n'importe quel chiffre inférieur à 10 empêche MySQL de démarrer. Les valeurs autorisées sont comprises entre 10 et 1024, et celle par défaut est 1024. L'option ne prend pas effet tant que l'instance n'est pas redémarrée.
+  `VERBOSITY` – Chaîne qui spécifie le niveau d'informations consignées dans le journal d'erreurs MySQL par le service `memcached`. La valeur par défaut est v. L'option ne prend pas effet tant que l'instance n'est pas redémarrée. Les valeurs autorisées sont :
  +  `v` : journalise les erreurs et avertissements pendant l’exécution de la boucle principale d’événements.
  +  `vv` – Outre les informations consignées par v, journalise également la commande de chaque client et la réponse.
  +  `vvv` – Outre les informations consignées par vv, journalise également les transitions d'état interne.

Amazon RDS configure ces paramètres MySQL `DAEMON_MEMCACHED_OPTIONS`, ils ne peuvent pas être modifiés : `DAEMON_PROCESS`, `LARGE_MEMORY_PAGES`, `MAXIMUM_CORE_FILE_LIMIT`, `MAX_ITEM_SIZE`, `LOCK_DOWN_PAGE_MEMORY`, `MASK`, `IDFILE`, `REQUESTS_PER_EVENT`, `SOCKET` et `USER`.