(PECL memcache >= 2.0.0)
Memcache::addServer — Ajoute un serveur memcache à la liste de connexion
$host
[, int $port
= 11211
[, bool $persistent
[, int $weight
[, int $timeout
[, int $retry_interval
[, bool $status
[, callable $failure_callback
[, int $timeoutms
]]]]]]]] )Memcache::addServer() ajoute un serveur à la liste de connexion. La connexion, qui a été ouverte avec la fonction Memcache::addServer(), sera automatiquement fermée à la fin de l'exécution du script ; vous pouvez également la fermer manuellement avec la fonction Memcache::close(). Vous pouvez également utiliser la fonction memcache_add_server().
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.
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
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 innatendus : pour cette raison, il convient
de toujours spécifier le port explicitement lors de l'appel à la méthode.
Cette fonction retourne TRUE
en cas de
succès ou FALSE
si une erreur survient.
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);
?>