## Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration Memcached
Nom | Défaut | Modifiable | Historique
--- | --- | --- | ---
memcached.sess_locking | On | `INI_ALL` | Disponible depuis memcached 0.1.0.
memcached.sess_consistent_hash | On | `INI_ALL` | Disponible depuis memcached 2.1.0. La valeur par défaut est `Actif` depuis memcached 3.0.0.
memcached.sess_binary | Off | `INI_ALL` | Disponible depuis memcached 2.0.0. Remplacé par `memcached.sess_binary_protocol` depuis memcached 3.0.0.
memcached.sess_lock_wait | 150000 | `INI_ALL` | Disponible depuis memcached 0.1.0. Supprimé depuis memcached 3.0.0.
memcached.sess_prefix | memc.sess.key. | `INI_ALL` | Disponible depuis memcached 0.1.0.
memcached.sess_number_of_replicas | 0 | `INI_ALL` | Disponible depuis memcached 2.1.0.
memcached.sess_randomize_replica_read | Off | `INI_ALL` | Disponible depuis memcached 2.1.0.
memcached.sess_remove_failed | On | `INI_ALL` | Disponible depuis memcached 2.1.0. Remplacé par `memcached.sess_remove_failed_servers` depuis memcached 3.0.0.
memcached.compression_type | fastlz | `INI_ALL` | Disponible depuis memcached 0.1.0.
memcached.compression_factor | 1.3 | `INI_ALL` | Disponible depuis memcached 0.1.0.
memcached.compression_threshold | 2000 | `INI_ALL` | Disponible depuis memcached 0.1.0.
memcached.serializer | igbinary | `INI_ALL` | Disponible depuis memcached 0.1.0.
memcached.use_sasl | Off | `INI_ALL` | Disponible depuis memcached 2.2.0. Supprimé depuis memcached 3.0.0.
memcached.default_binary_protocol | Off | `INI_ALL` | Disponible depuis memcached 3.0.0.
memcached.default_connect_timeout | 0 | `INI_ALL` | Disponible depuis memcached 3.0.0.
memcached.default_consistent_hash | Off | `INI_ALL` | Disponible depuis memcached 3.0.0.
memcached.sess_binary_protocol | On | `INI_ALL` | Disponible depuis memcached 3.0.0. Remplace `memcached.sess_binary`.
memcached.sess_connect_timeout | 1000 | `INI_ALL` | Disponible depuis memcached 2.2.0.
memcached.sess_consistent_hash_type | ketama | `INI_ALL` | Disponible depuis memcached 3.1.0.
memcached.sess_lock_expire | 0 | `INI_ALL` | Disponible depuis memcached 2.2.0.
memcached.sess_lock_retries | 5 | `INI_ALL` | Disponible depuis memcached 3.0.0.
memcached.sess_lock_wait_max | 150 | `INI_ALL` | Disponible depuis memcached 3.0.0. Par défaut à `150` depuis memcached 3.1.0 (avant `2000`).
memcached.sess_lock_wait_min | 150 | `INI_ALL` | Disponible depuis memcached 3.0.0. Par défaut à `150` depuis memcached 3.1.0 (avant `1000`).
memcached.sess_persistent | Off | `INI_ALL` | Disponible depuis memcached 3.0.0.
memcached.sess_remove_failed_servers | Off | `INI_ALL` | Disponible depuis memcached 3.0.0. Remplace `memcached.sess_remove_failed`.
memcached.sess_server_failure_limit | 0 | `INI_ALL` | Disponible depuis memcached 3.0.0.
memcached.sess_sasl_password | null | `INI_ALL` | Disponible depuis memcached 2.2.0.
memcached.sess_sasl_username | null | `INI_ALL` | Disponible depuis memcached 2.2.0.
memcached.store_retry_count | 0 | `INI_ALL` | Disponible depuis memcached 2.2.0. Par défault à `0` depuis memcached 3.2.0 (avant `2`).

Voici un éclaircissement sur l'utilisation des directives de configuration.

`memcached.sess_locking` bool

  Utilise les verrous de session. Les valeurs valides sont `On` et `Off`, la valeur par défaut est `On`.

`memcached.sess_consistent_hash` bool

  Si défini à `On`, utilise le hachage consistant (libketama) pour la gestion des sessions. Lorsque le hachage consistant est utilisé, on peut ajouter ou supprimer des nœuds de cache sans perturber les clés existantes. La valeur par défaut est `On`.

`memcached.sess_binary` bool

  Utilise le mode binaire pour les sessions memcached. Les répliques de libmemcached ne fonctionnent que si le mode binaire est activé. La valeur par défaut est `Off`.

`memcached.sess_lock_wait` int

  La durée d'attente du verrou de session en microsecondes. Soyez prudent lorsque vous définissez cette valeur. Les valeurs valides sont des entiers, où `0` est interprété comme la valeur par défaut. Les valeurs négatives entraînent une réduction du verrouillage à un verrou d'essai. La valeur par défaut est `150000`.

`memcached.sess_prefix` string

  Le préfixe de clé de session Memcached. Les valeurs valides sont des chaînes de moins de 219 octets. La valeur par défaut est `memc.sess.key`.

`memcached.sess_number_of_replicas` int

  Ecrit les données sur un certain nombre de serveurs Memcached supplémentaires. C'est ce que libmemcached appelle le "pauvre homme HA". Si cette valeur est positive et que `sess_remove_failed_servers` est activé, lorsqu'un serveur Memcached échoue, la session continuera d'être disponible à partir d'une réplique. Cependant, si le serveur Memcached en panne redevient disponible, la session sera lue à partir de là, ce qui pourrait avoir des données obsolètes ou aucune donnée du tout. La valeur par défaut est `0`.

`memcached.sess_randomize_replica_read` bool

  La session Memcached lit la réplication aléatoire.

`memcached.sess_remove_failed` int

  Autorise le serveur Memcached en panne à être automatiquement supprimé.

`memcached.compression_type` string

  Définit le type de compression, les valeurs valides sont: `fastlz`, `zlib`. La valeur par défaut est `fastlz`.

`memcached.compression_factor` float

  Le facteur de compression. Stockez la valeur compressée uniquement si le facteur de compression (économie) dépasse la limite définie. Stockez compressé si: `plain_len > comp_len * factor`. La valeur par défaut est `1.3` (23% d'économie d'espace).

`memcached.compression_threshold` int

  Le seuil de compression. Ne pas compresser les valeurs sérialisées en dessous de ce seuil. La valeur par défaut est `2000` octets.

`memcached.serializer` string

  Définit le sérialiseur par défaut pour les nouveaux objets Memcached. Les valeurs valides sont: `php`, `igbinary`, `json`, `json_array`, `msgpack`.

  json

    La sérialisation JSON PHP standard. Ce sérialiseur est rapide et compact mais ne fonctionne que sur des données encodées en UTF-8 et n'implémente pas entièrement la sérialisation. Voir l'extension JSON. Disponible depuis memcached 0.2.0.

  json_array

    Comme `json`, mais décode en tableaux. Disponible depuis memcached 2.0.0.

  php

    Le sérialiseur PHP standard.

  igbinary

    Un sérialiseur binaire. Disponible depuis memcached 0.1.4.

  msgpack

    Un sérialiseur binaire multi-langage. Disponible depuis memcached 2.2.0.

  La valeur par défaut est `igbinary` si disponible, puis `msgpack` si disponible, puis sinon `php`.

`memcached.use_sasl` bool

  Utiliser l'authentification SASL pour les connexions. Les valeurs valides sont `On` et `Off`. La valeur par défaut est `Off`.

`memcached.default_binary_protocol` bool

  Définit le protocole memcached par défaut pour les nouvelles connexions. (Pour configurer le protocole memcached pour les connexions utilisées par les sessions, utilisez `memcached.sess_binary_protocol` à la place.) Si défini à `On`, le protocole binaire memcached est utilisé par défaut. Si défini à `Off`, le protocole texte memcached est utilisé. La valeur par défaut est `Off`.

`memcached.default_connect_timeout` int

  Définit le délai de connexion memcached par défaut pour les nouvelles connexions. (Pour configurer le délai de connexion memcached pour les sessions, utilisez `memcached.sess_connect_timeout` à la place.) Dans un mode non bloquant, cela change la valeur du délai. Pendant la connexion du socket en millisecondes. Spécifier `-1` signifie un délai infini. Spécifier `0` signifie utiliser le délai de connexion par défaut de la bibliothèque memcached. La valeur par défaut est `0`.

`memcached.default_consistent_hash` bool

  Définit le hachage consistant par défaut pour les nouvelles connexions. (Pour configurer le hachage consistant pour les connexions utilisées par les sessions, utilisez `memcached.sess_consistent_hash` à la place.) Si définit à `On`, le hachage consistant (libketama) est utilisé pour la gestion des sessions. Lorsque le hachage consistant est utilisé, on peut ajouter ou supprimer des nœuds de cache sans perturber les clés existantes. La valeur par défaut est `Off`.

`memcached.sess_binary_protocol` bool

  Utiliser le protocole binaire memcached pour les sessions memcached au lieu du protocole texte. Les répliques de libmemcached ne fonctionnent que si le mode binaire est activé. Cependant, certains proxies (comme twemproxy) ne fonctionneront que si le protocole binaire est désactivé. La valeur par défaut est `On` depuis libmemcached 1.0.18. Avant libmemcached 1.0.18, la valeur par défaut était `Off`.

  > Note: Dans les versions précédentes de php-memcached, ce paramètre s'appelait `memcached.sess_binary`.

`memcached.sess_connect_timeout` int

  La valeur du temps d'attente de connexion memcached. En mode non bloquant, cela change la valeur du délai pendant la connexion du socket en millisecondes. Spécifier `-1` signifie un délai infini.

`memcached.sess_consistent_hash_type` string

  Type de hachage consistant de session Memcached. Si défini à `ketama`, le hachage consistant (libketama) est utilisé pour la gestion des sessions. Si défini à `ketama_weighted`, le hachage consistant pondéré (libketama) est utilisé pour la gestion des sessions. La valeur par défaut est `ketama`. Avant php-memcached 3.0, la valeur par défaut était `ketama_weighted`.

`memcached.sess_lock_expire` int

  Le temps, en secondes, avant qu'un verrou ne se libère. Définir sur `0` donne le comportement par défaut, qui est d'utiliser `max_execution_time` de PHP. La valeur par défaut est `0`.

`memcached.sess_lock_retries` int

  Le nombre de tentatives de verrouillage de session, sans compter la première tentative. La valeur par défaut est `5`.

`memcached.sess_lock_wait_max` int

  Le temps maximum, en millisecondes, à attendre entre les tentatives de verrouillage de session. La valeur par défaut est `150`.

`memcached.sess_lock_wait_min` int

  Le temps minimum, en millisecondes, à attendre entre les tentatives de verrouillage de session. Cette valeur est doublée à chaque nouvelle tentative de verrouillage jusqu'à ce que `memcached.sess_lock_wait_max` soit atteint, après quoi toute nouvelle tentative prendra `memcached.sess_lock_wait_max` secondes. La valeur par défaut est `150`.

`memcached.sess_persistent` bool

  Si les connexions memcached correspondent à la valeur(s) de `session.save_path` doivent être réutilisées après l'exécution du script. Ne pas utiliser si certains paramètres (par exemple, les paramètres SASL, sess_binary_protocol) seraient écrasés entre les requêtes. La valeur par défaut est `Off`.

`memcached.sess_remove_failed_servers` bool

  Autorise le serveur Memcached en panne à être automatiquement supprimé. La valeur par défaut est `Off`.

  > Note: Dans les versions précédentes de php-memcached, ce paramètre s'appelait `memcached.sess_remove_failed`.

`memcached.sess_server_failure_limit` int

  Définir cette valeur pour permettre la suppression automatique du serveur après un certain nombre de tentatives de connexion échouées. La valeur par défaut est `0`.

`memcached.sess_sasl_password` string

  Le mot de passe SASL de session. Le nom d'utilisateur et le mot de passe doivent être définis pour activer SASL.

`memcached.sess_sasl_username` string

  Le nom d'utilisateur SASL de session. Le nom d'utilisateur et le mot de passe doivent être définis pour activer SASL.

`memcached.store_retry_count` int

  La quantité de tentatives pour les commandes de stockage échouées. Ce mécanisme permet un basculement transparent vers les serveurs secondaires lorsque les opérations set/increment/decrement/setMulti échouent sur le serveur souhaité dans un environnement multi-serveurs. La valeur par défaut est `2`.