# Memcache::addServer

# memcache_add_server

(PECL memcache >= 2.0.0)

Memcache::addServer -- memcache_add_server — Ajoute un serveur memcache à la liste de connexion

### Description

Memcache::addServer(
string `$host`,
int `$port` = 11211,
bool `$persistent` = ?,
int `$weight` = ?,
int `$timeout` = ?,
int `$retry_interval` = ?,
bool `$status` = ?,
callable `$failure_callback` = ?,
int `$timeoutms` = ?
): bool
memcache_add_server(
Memcache `$memcache`,
string `$host`,
int `$port` = 11211,
bool `$persistent` = ?,
int `$weight` = ?,
int `$timeout` = ?,
int `$retry_interval` = ?,
bool `$status` = ?,
callable `$failure_callback` = ?,
int `$timeoutms` = ?
): bool

Memcache::addServer() ajoute un serveur à la liste de connexion.

Lors de l'utilisation de cette méthode (contrairement aux méthodes Memcache::connect() et Memcache::pconnect()), la connexion au réseau n'est pas établie sans qu'elle ne soit nécessaire. De plus, il n'y a aucun inconvénient à ajouter beaucoup de serveurs à la liste, même s'ils ne seront pas tous utilisés.

Le basculement peut se produire à n'importe quel moment avec n'importe quelle méthode tant que les autres serveurs sont disponibles, la requête n'émettra pas d'erreur. N'importe quel interface de connexion ou niveau d'erreurs de serveur Memcache (à l'exception du manque de mémoire) peut lancer le basculement. Des erreurs normales de client comme l'ajout d'une clé existante ne lancera pas un basculement.

> Note:

> Cette fonction a été ajoutée à la version de Memcache 2.0.0.

### Liste de paramètres

`host`

  Pointe à l'hôte où memcache écoute pour des connexions. Ce paramètre peut également spécifier d'autres transporteurs comme `unix:///path/to/memcached.sock` pour utiliser les sockets Unix, et dans ce cas, `port` doit également être défini à `0`.

`port`

  Pointe au port où memcache écoute pour des connexions. Définissez ce paramètre à `0` lors de l'utilisation des sockets Unix.

  Note : Par défaut, le paramètre `port` prend la valeur de l'option de configuration memcache.default_port lorsqu'il n'est pas spécifié. Pour cette raison, il convient de spécifier explicitement le port lors de l'appel à cette méthode.

`persistent`

  Contrôle l'utilisation d'une connexion persistante. La valeur par défaut est `true`.

`weight`

  Nombre d'entrées à créer pour ce serveur qui en retour contrôle sa probabilité d'être choisi. La probabilité est relative au poids total de tous les serveurs.

`timeout`

  Valeur en seconde qui sera utilisée pour se connecter au démon. Pensez-y deux fois avant de changer la valeur par défaut d'une seconde - vous pourriez perdre tous les avantages de l'utilisation de la cache si votre connexion est trop lente.

`retry_interval`

  Contrôle combien de fois un serveur qui échoue sera tenté à nouveau, la valeur par défaut est de 15 secondes. Si ce paramètre vaut -1, aucune nouvelle tentative ne sera effectuée. Ni ce paramètre, ni le paramètre `persistent` n'ont d'effet lorsque cette extension est chargée dynamiquement via la fonction dl().

  Chaque structure de connexion échouée a son propre dépassement de temps et avant que celui-ci expire, il sera sauté lors de la sélection du processus pour servir une requête. Une fois expiré, la connexion sera correctement reconnectée ou marquée comme échouée pour un autre intervalle de `retry_interval` secondes. L'effet typique est que chaque enfant de serveur Web essaiera la connexion chaque `retry_interval` secondes lorsqu'il sert une page.

`status`

  Contrôle si le serveur doit être indiqué comme étant en ligne. Quand ce paramètre vaut `false` et le paramètre `retry_interval` vaut -1, cela permet de conserver un serveur qui a échoué dans la liste et n'affectera pas l'algorithme de distribution des clés. Les demandes pour ce serveur échoueront immédiatement suivant la configuration du paramètre `memcache.allow_failover`. Par défaut, ce paramètre vaut `true`, signifiant que le serveur doit être considéré comme étant en ligne.

`failure_callback`

  Permet à l'utilisateur de spécifier une fonction de rappel permettant de contourner une erreur. La fonction de rappel est exécutée avant d'atteindre la limite de tentative. La fonction prend deux paramètres ; le nom de l'hôte et le port du serveur qui a échoué.

`timeoutms`

### Valeurs de retour

Cette fonction retourne `true` en cas de succès ou `false` si une erreur survient.

### Exemples

Exemple #1 Exemple avec Memcache::addServer()

`<?php
/* API orientée objet */
$memcache = new Memcache;
$memcache->addServer('memcache_host', 11211);
$memcache->addServer('memcache_host2', 11211);
/* API procédurale */
$memcache_obj = memcache_connect('memcache_host', 11211);
memcache_add_server($memcache_obj, 'memcache_host2', 11211);
?>`

### Notes

Avertissement

Lorsque le paramètre `port` n'est pas spécifié, cette méthode prendra la valeur de la directive de configuration INI memcache.default_port. Si cette valeur a été modifiée à un autre endroit dans votre application, cela peut conduire à des résultats inattendus : pour cette raison, il convient de toujours spécifier le port explicitement lors de l'appel à la méthode.

### Voir aussi

- Memcache::connect() - Ouvre une connexion avec le serveur Memcache
- Memcache::pconnect() - Ouvre un connexion persistante à un serveur de cache
- Memcache::close() - Ferme la connexion avec le serveur Memcache
- Memcache::setServerParams() - Modifie les paramètres et les statuts du serveur pendant l'exécution
- Memcache::getServerStatus() - Retourne le statut du serveur