Memcache::connect

memcache_connect

(PECL memcache >= 0.2.0)

Memcache::connect -- memcache_connectОткрывает соединение с сервером memcached

Описание

Memcache::connect(string $host, int $port = ?, int $timeout = ?): bool
memcache_connect(string $host, int $port = ?, int $timeout = ?): Memcache

Метод Memcache::connect() устанавливает соединение с сервером memcached. Соединение, которое открыли методом Memcache::connect(), автоматически закрывается при завершении работы скрипта. Соединение закрывают методом Memcache::close().

Список параметров

host
В параметре указывается хост, на котором сервер memcached прослушивает соединения, или другие транспортные протоколы наподобие unix:///path/to/memcached.sock для соединения с сокетом Unix-домена; при соединении с сокетом для параметра port потребуется установить значение 0.
port
В параметре указывается порт, на котором сервер memcached прослушивает соединения. При соединении с сокетом Unix-домена для параметра устанавливают значение 0. Обратите внимание: при пропуске аргумента значение параметра port становится равным значению директивы memcache.default_port. Поэтому при вызове метода лучше явно указывать порт.
timeout
Время ожидания в секундах для подключения к демону. Изменение значения по умолчанию в 1 секунду часто нивелирует преимущества кеширования на медленных соединениях.

Возвращаемые значения

Функция возвращает true, если выполнилась успешно, или false, если возникла ошибка.

Примеры

Пример #1 Пример установки соединения с memcached-сервером методом Memcache::connect()

<?php

/* Процедурный API */

$memcache_obj = memcache_connect('memcache_host', 11211);

/* Объектно-ориентированный API */

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

?>

Примечания

Внимание

При пропуске параметра port метод извлекает значение ini-директивы PHP memcache.default_port. При изменении значения директивы в коде приложения поведение метода становится непредсказуемым. Поэтому при вызове метода лучше явно указывать порт.

Смотрите также

  • Memcache::pconnect() - Открывает постоянное соединение с сервером memcached
  • Memcache::close() - Закрывает соединение с сервером memcached
Добавить

Примечания пользователей 1 note

up
11
geoffrey dot hoffman at gmail dot com
15 years ago
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
}
?>
To Top