Memcache Memcache::addServer
(PECL memcache >= 2.0.0)
Memcache::addServer — 연결 풀에 memcached 서버 추가
설명
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()는 연결 풀에 서버를 추가합니다. memcache_add_server() 함수를 사용할 수도 있습니다.
이 메서드를 사용할 때(Memcache::connect() 및 Memcache::pconnect()와 반대) 실제로 필요할 때까지 네트워크 연결이 설정되지 않습니다. 따라서 모두 사용되지는 않더라도 많은 수의 서버를 풀에 추가할 때 오버헤드가 없습니다.
다른 서버를 사용할 수 있는 한 사용자가 알아차리지 못하는 요청이 있는 한 모든 메서드의 모든 단계에서 장애 조치가 발생할 수 있습니다. 모든 종류의 소켓 또는 Memcached 서버 수준 오류(메모리 부족 제외)는 장애 조치를 트리거할 수 있습니다. 기존 키 추가와 같은 일반적인 클라이언트 오류는 장애 조치를 트리거하지 않습니다.
메모: 이 함수는 Memcache 버전 2.0.0에 추가되었습니다.
매개변수
host
- memcached가 연결을 수신하는 호스트를 가리킵니다. 이 매개변수는 UNIX 도메인 소켓을 사용하기 위해
unix:///path/to/memcached.sock
과 같은 다른 전송을 지정할 수도 있습니다. 이 경우port
도0
으로 설정해야 합니다. port
- memcached가 연결을 수신하는 포트를 가리킵니다. UNIX 도메인 소켓을 사용하는 경우 이 매개변수를
0
으로 설정하십시오.참고:
port
가 지정되지 않은 경우 기본값은 memcache.default_port입니다. 이러한 이유로 이 메서드 호출에서 포트를 명시적으로 지정하는 것이 좋습니다. persistent
- 영구 연결의 사용을 제어합니다. 기본값은
true
입니다. weight
- 선택될 확률을 차례로 제어하는 이 서버에 대해 생성할 버킷의 수입니다. 확률은 모든 서버의 총 중량에 상대적입니다.
timeout
- 데몬에 연결하는 데 사용할 값(초)입니다. 기본값인 1초를 변경하기 전에 두 번 생각하십시오. 연결이 너무 느리면 캐싱의 모든 이점을 잃을 수 있습니다.
retry_interval
- 실패한 서버를 재시도하는 빈도를 제어하며 기본값은 15초입니다. 이 매개변수를 -1로 설정하면 자동 재시도가 비활성화됩니다. 확장이 dl()을 통해 동적으로 로드될 때 이 매개변수와
persistent
매개변수 모두 영향을 미치지 않습니다.실패한 각 연결 구조체에는 자체 시간 초과가 있으며 만료되기 전에 요청을 처리할 백엔드를 선택할 때 구조체를 건너뜁니다. 만료되면 연결이 성공적으로 다시 연결되거나 다른
retry_interval
초 동안 실패한 것으로 표시됩니다. 일반적인 효과는 페이지를 제공할 때 각 웹 서버 자식이retry_interval
초마다 연결을 다시 시도한다는 것입니다. status
- 서버를 온라인으로 플래그 지정해야 하는지 여부를 제어합니다. 이 매개변수를
false
로 설정하고retry_interval
을 -1로 설정하면 키 분배 알고리즘에 영향을 미치지 않도록 실패한 서버를 풀에 보관할 수 있습니다. 이 서버에 대한 요청은memcache.allow_failover
설정에 따라 즉시 장애 조치되거나 실패합니다. 기본값은true
로, 서버가 온라인으로 간주되어야 함을 의미합니다. failure_callback
- 사용자가 오류 발생 시 실행할 콜백 함수를 지정할 수 있습니다. 장애 조치가 시도되기 전에 콜백이 실행됩니다. 이 함수는 실패한 서버의 호스트 이름과 포트라는 두 개의 매개변수를 사용합니다.
timeoutms
반환 값
성공하면 true
를, 실패하면 false
를 반환합니다.
Examples
예제 #1 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);
?>
메모
경고 port
가 지정되지 않은 경우 이 메소드는 기본적으로 PHP ini 지시문 memcache.default_port의 값 세트로 설정됩니다. 이 값이 애플리케이션의 다른 곳에서 변경되면 예기치 않은 결과가 발생할 수 있습니다. 이러한 이유로 항상 포트를 명시적으로 지정하는 것이 현명합니다. 이 메소드 호출.
기타
- Memcache::connect() - memcached 서버 연결 열기
- Memcache::pconnect() - memcached 서버 영구 연결 열기
- Memcache::close() - memcached 서버 연결 닫기
- Memcache::setServerParams() - 런타임 시 서버 매개변수 및 상태 변경
- Memcache::getServerStatus() - 서버 상태 반환