Memcache::addServer

(PECL memcache >= 2.0.0)

Memcache::addServerAñadir servidor memcache al grupo de conexiones

Descripción

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::addServer() añade un servidor al grupo de conexiones. También se puede usar la función memcache_add_server().

Cuando se usa este método (opuestamente a Memcache::connect() y Memcache::pconnect()) la conexión no se establece hasta que es necesaria. De esta forma no hay sobrecarga al añadir un gran número de servidores en el grupo de conexiones, aunque no todos van a ser utilizados.

La conexión puede caer en cualquier momento usando cualquiera de los métodos, mientras otros servidores estén disponibles para hacer la petición el usuario no notará nada. Cualquier tipo de errores de socket o servidor Memcached (excepto out-of-memory) seguramente harán caer la conexión. Errores en el cliente como añadir una llave que ya existe no provocará la caida de la conexión.

Nota:

Esta función fué añadida en Memcache versión 2.0.0.

Parámetros

host

Apunta al host donde memcached está esperando conexiones. Este parámetro también se puede especificar con otros transportes como unix:///path/to/memcached.sock para usar domain UNIX sockets, en este caso port debe también establecerse a 0.

port

Apunta al puerto donde memcache está esperando para conexiones. Establece este parámetro a 0 cuando se usan UNIX domain sockets.

Por favor note: port será por defecto memcache.default_port en caso de no especificarse. Por esta razón, se recomienda especificar el puerto explícitamente en la llamada a este método.

persistent

Controla el uso de una conexión persistente. Por defecto TRUE.

weight

Número de segmentos para crear de este servidor, que a su vez controlan la probabilidad de que sea seleccionado. La probabilidad es relativa a la de peso total de todos los servidores.

timeout

Valor en segundos que se utilizará para conectar con el demonio. Piense dos veces antes de cambiar el valor predeterminado de 1 segundo - se puede perder todas las ventajas de la caché si su conexión es demasiado lenta.

retry_interval

Controla la frecuencia de reintentos cuando falla la conexión, el valor por defecto es 15 segundos. Si establece este parámetro a -1 desactivará el reintento automático. Ni esta opción ni el parámetro persistent tienen ningún efecto cuando la extensión se carga dinámicamente a través de dl().

Cada conexión struct fallida tiene su propio timeout y antes de que caduque, el struct será omitido cuando se selecionen backends para servir una petición.Cuando caduque la conexión se reconectará satisfactoriamente o se marcará como fallida por otros retry_interval segundos. El típico efecto es que cada servidor web hijo reintentará la conexión cada retry_interval cuando se sirven páginas.

status

Controla si el servidor debe ser marcado como online. Estableciendo este parámetro a FALSE y retry_interval a -1 permite a un servidor que falle a ser mantenido en el grupo para no afectar el algoritmo de distribución de llaves. Las peticiones a este servidor fallarán inmediatamente dependiendo en la opción memcache.allow_failover. Por defecto to TRUE, que significa que el servidor se considera online.

failure_callback

Permite al usuario a especificar la llamada a una función de retorno a ejectuar cuando se encuentre un error. La llamada de retorno se ejecuta antes de que se produzca la caída en la conexión. La función toma dos parámetros, el hostname y el puerto del puerto que ha fallado.

timeoutms

Notas

Advertencia

Cuando no se especifica port, este método usará el valor establecido en la directiva ini memcache.default_port de PHP. Si este valor se cambiara en cualquier lugar de la aplicación podría conducir a resultados inesperados; por esta razón, es prudente especificar el puerto explícitamente en la llamada a este método.

Valores devueltos

Devuelve TRUE en caso de éxito o FALSE en caso de error.

Ejemplos

Ejemplo #1 Ejemplo Memcache::addServer()

<?php

/* OO API */

$memcache = new Memcache;
$memcache->addServer('memcache_host'11211);
$memcache->addServer('memcache_host2'11211);

/* procedural API */

$memcache_obj memcache_connect('memcache_host'11211);
memcache_add_server($memcache_obj'memcache_host2'11211);

?>

Ver también