downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

Memcache::decrement> <Memcache::close
Last updated: Fri, 20 May 2011

view this page in

Memcache::connect

(PECL memcache >= 0.2.0)

Memcache::connectAbre una conexión al servidor memcached

Descripción

bool Memcache::connect ( string $host [, int $port [, int $timeout ]] )

Memcache::connect() establece una conexión al servidor memcached. La conexión, que fue abierta usando Memcache::connect() será automáticamente cerrada al finalizar la ejecucción del script. También se puede cerrar con Memcache::close(). También puede usar la función memcache_connect().

Parámetros

host

El host donde el memcached está esperando conexiones. En este parámetro también se puede especificar otros transporte como unix:///path/to/memcached.sock para usar UNIX domain sockets. En este caso port debe ser establecido a 0.

port

El puerto donde memcached está esperando conexiones. Establezca este parámetro a 0 cuando se usan UNIX domain sockets.

timeout

Valor en segundos que se utilizarán para conectarse al demonio. Piensa dos veces antes de cambiar el valor por defecto de 1 segundo, puedes perder todas la ventajas del caché si tus conexiones son muy lentas.

Valores devueltos

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

Ejemplos

Example #1 Memcache::connect() example

<?php

/* procedural API */

$memcache_obj memcache_connect('memcache_host'11211);

/* OO API */

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

?>

Ver también



Memcache::decrement> <Memcache::close
Last updated: Fri, 20 May 2011
 
add a note add a note User Contributed Notes Memcache::connect
djbrd 11-May-2011 06:48
To suppress (or handle) the warning and notice thrown by a failed attempt to connect, you can use a custom error handler function, like this:

<?php
function myErrorHandler($errno, $errstr, $errfile, $errline)
{

    if (
E_WARNING === $errno)
    {
       
Log("PHP Warning: $errstr, $errfile, $errline", Logging::WARN);
        return
true;
    }
   
    if (
E_NOTICE === $errno)
    {
       
Log("PHP Notic: $errstr, $errfile, $errline", Logging::NOTICE);
        return
true;
    }   
   
    return
false;
}

set_error_handler('myErrorHandler');
?>
geoffrey dot hoffman at gmail dot com 18-Aug-2010 07:32
If memcached is working, calling memcache_connect( ) returns an Object instance, not a boolean. If memcached is not working, calling memcache_connect( ) throws a notice AND a warning (and returns false as expected).

<?php
/* memcache is running */
$test1 = memcache_connect('127.0.0.1',11211);
echo
gettype($test1);
// object
echo get_class($test1);
// Memcache

/* memcached is stopped */
$test2 = memcache_connect('127.0.0.1',11211);

/*
Notice: memcache_connect(): Server 127.0.0.1 (tcp 11211) failed with: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond.
 (10060) in C:\Program Files\Support Tools\- on line 1

Warning: memcache_connect(): Can't connect to 127.0.0.1:11211, A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond.
 (10060) in C:\Program Files\Support Tools\- on line 1
*/

echo gettype($test2);
// boolean
echo $test2===false;
// 1
?>

There appears to be no way to check whether memcached is actually running without resorting to error suppression:

<?php
$test3
= @memcache_connect('127.0.0.1',11211);
if(
$test3===false ){
  
// memcached is _probably_ not running
}
?>
chrisn at allipo dot com 05-Sep-2006 08:39
The behavior of Memcache::connect() is to always reinitialize the pool from scratch regardless of any previous calls to addServer().

E.g.

<?php
$mmc
= new Memcache()
$mmc->addServer('node1', 11211);
$mmc->addServer('node2', 11211);
$mmc->addServer('node3', 11211);

$mmc->connect('node1', 11211);
?>

The last connect() call clears out the pool and then add and connect node1:11211 making it the only server.

If you want a pool of memcache servers, do not use the connect() function.

If you only want a single memcache server then there is no need to use the addServer() function.

 
show source | credits | stats | sitemap | contact | advertising | mirror sites