(PECL memcache >= 0.2.0)
Memcache::connect — Open memcached server connection
Memcache::connect() establishes a connection to the memcached server. The connection, which was opened using Memcache::connect() will be automatically closed at the end of script execution. Also you can close it with Memcache::close(). Also you can use memcache_connect() function.
Point to the host where memcached is listening for connections. This parameter may also specify other transports like unix:///path/to/memcached.sock to use UNIX domain sockets, in this case port must also be set to 0.
Point to the port where memcached is listening for connections. Set this parameter to 0 when using UNIX domain sockets.
Value in seconds which will be used for connecting to the daemon. Think twice before changing the default value of 1 second - you can lose all the advantages of caching if your connection is too slow.
Gibt bei Erfolg TRUE zurück. Im Fehlerfall wird FALSE zurückgegeben.
Beispiel #1 Memcache::connect() example
<?php
/* procedural API */
$memcache_obj = memcache_connect('memcache_host', 11211);
/* OO API */
$memcache = new Memcache;
$memcache->connect('memcache_host', 11211);
?>
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
}
?>
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.