Memcache::addServer
(PECL memcache >= 2.0.0)
Memcache::addServer — Ajoute un serveur memcache à la liste de connexion
Description
$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.
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 chaqueretry_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ètreretry_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ètrememcache.allow_failover
. Par défaut, ce paramètre vautTRUE
, 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
-
Notes
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.
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); ?>
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() - Modifit les paramètres et les statuts du serveur pendant l'exécution
- Memcache::getServerStatus() - Retourne le statut du serveur