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과 같은 다른 전송을 지정할 수도 있습니다. 이 경우 port0으로 설정해야 합니다.
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의 값 세트로 설정됩니다. 이 값이 애플리케이션의 다른 곳에서 변경되면 예기치 않은 결과가 발생할 수 있습니다. 이러한 이유로 항상 포트를 명시적으로 지정하는 것이 현명합니다. 이 메소드 호출.


기타