>  기사  >  백엔드 개발  >  PHP 멤캐시 요약

PHP 멤캐시 요약

WBOY
WBOY원래의
2016-07-30 13:30:44948검색

1. 소개

memcache 모듈은 메모리 캐싱, 특히 동적 웹 설계를 위한 절차적 프로그램과 객체 지향의 편리한 인터페이스를 제공하는 효율적인 데몬입니다. 프로그래밍 중 데이터베이스 액세스를 줄입니다.

memcache는 통신 대화를 위한 처리(session_handler)도 제공합니다.

Memcache 모듈에 대한 자세한 내용은 http://www.danga.com/memcached/에서 확인할 수 있습니다.

1.1.php.ini의 Memcache 구성 항목 목록

memcache在php.ini中的配置项列表
名称 默认值 可修改的范围 改变日志
memcache.allow_failover “1” PHP_INI_ALL Available since memcache 2.0.2.
memcache.max_failover_attempts "20" PHP_INI_ALL Available since memcache 2.1.0.
memcache.chunk_size "8192" PHP_INI_ALL Available since memcache 2.0.2.
memcache.default_port "11211" PHP_INI_ALL Available since memcache 2.0.2.
memcache.hash_strategy "standard" PHP_INI_ALL Available since memcache 2.2.0.
memcache.hash_function "crc32" PHP_INI_ALL Available since memcache 2.2.0.
session.save_handler "files" PHP_INI_ALL Supported since memcache 2.1.2
session.save_path "" PHP_INI_ALL Supported since memcache 2.1.2

PHP_INI_* 상수에 대한 자세한 내용과 정의는 PHP 매뉴얼 php.ini 구성 옵션을 참조하세요.

1.2. 설정 항목에 대한 간략한 설명은 다음과 같습니다

memcache.allow_failover Boolean

오류 발생 시 투명하게 처리를 위해 다른 서버로 전송됩니다(참고: 장애 조치는 동사입니다).

memcache.max_failover_attempts 정수

데이터를 설정하고 가져올 서버의 숫자 클래스를 정의합니다. memcache.allow_failover와 함께 사용됩니다.

memcache.chunk_size 정수

데이터가 지정된 크기( 이 값(chunk_size)이 작을수록 쓰기 작업 요청이 많아집니다. 설명할 수 없는 다른 속도 저하가 발견되면 이 값을 32768로 늘려보세요.

memcache.default_port string

Memcache 서버에 연결할 때 포트를 지정하지 않으면 기본 tcp 포트가 사용됩니다.

memcache.hash_strategy string

키를 서버에 매핑할 때 사용되는 전략을 제어합니다. 이 값을 일관되게 설정하면 해싱 알고리즘을 일관되게 사용할 수 있으며 서버가 풀에서 변수 추가 또는 제거를 승인할 때 다시 매핑되지 않습니다. 이 값을 설정하면 이전 전략을 사용할 때 표준 결과가 제공됩니다.

memcache.hash_function string

서버에 대한 키 매핑 프로세스에 적용할 hsah 함수를 제어합니다. 기본값은 "crc32"입니다. CRC32 알고리즘, "fnv"는 FNV-1a 알고리즘을 사용함을 의미합니다.

session.save_handler string

이 값을 memcache로 설정하여 통신 세션 처리(세션 핸들러)를 위한 Memcache 사용을 결정합니다.

session.save_path string

통화 저장에 사용되는 각 서버 링크에 대한 구분 기호를 정의합니다(예: "tcp://host1: 11211,tcp://호스트2:11211".

각 서버 링크에는 Memcache::addServer()를 사용하여 추가된 서버와 유사하게 해당 서버에서 허용되는 매개변수가 포함될 수 있습니다. 예: "tcp://host1:11211?pertant=1&weight=1&timeout =1& ;재시도 간격=15”.

1.3.memcache 상수 목록

memcache常量列表
名称 类型 描述
MEMCACHE_COMPRESSED integer 用于调整在使用 Memcache::set(), Memcache::add() 和 Memcache::replace() 几个函数时的压缩比率。
MEMCACHE_HAVE_SESSION integer 如果通信对话的处理(session handler)被允许使用其值为 1,其他情况值为 0。

2Memcache 기능 기능 목록

2.1.Memcache::connect

2.1.1.설명

bool Memcache ::connect ( 문자열 $host [, int $port [, int $timeout ]] )

Memcache 서버에 연결

2.1.2. 매개변수

$host(string) 서버 도메인 이름 또는 IP

$port(int) 서버 tcp 포트 번호, 기본값은 11211

$timeout 연결 memcache 프로세스의 만료 시간, 모든 손실을 방지하려면 기본값 1을 수정하기 전에 두 번 생각해야 합니다. Memcache 캐싱의 장점은 연결 속도가 매우 느려진다는 것입니다.

2.1.3. 반환값

성공하면 true, 실패하면 false

2.1.4.예

PHP 멤캐시 요약

php
/* 절차적 API * /$memcache_obj = memcache_connect('memcache_host', 11211);
/* OO API */$memcache = new Memcache;
$memcache- > connect('memcache_host', 11211);
?> ;

PHP 멤캐시 요약


2.2.Memcache::pconnect

2.2 .1. 설명

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

상시 연결 모드로 서버에 연결

2.2.2.매개변수

$host(string) 서버 도메인 이름 또는 ip

$port(int) 서버 tcp 포트 번호, 기본값은 11211

$timeout은 연결 Memcache 프로세스의 만료 시간입니다. Memcache 캐싱의 모든 이점을 잃고 연결이 매우 느려지는 것을 방지하려면 기본값인 1을 수정하기 전에 두 번 생각해야 합니다.

2.2.3. 반환값

성공하면 true, 실패하면 false

2.2.4. 예시

PHP 멤캐시 요약

php/* 절차적 API */ $memcache_obj = memcache_pconnect('memcache_host', 11211);/* OO API */ $memcache_obj = Memcache;$memcache_obj ->pconnect('memcache_host', 11211); ?> ;

PHP 멤캐시 요약


2.3.Memcache::close

2.3 .1. 설명

bool Memcache::닫기(무효)

객체 닫기(상시 연결에서는 작동하지 않음)

2.3.2. 반환 값

성공하면 true, 실패하면 false 반환

2.3.3 . 예

PHP 멤캐시 요약

php
/* 절차적 API */$ memcache_obj = memcache_connect('memcache_host', 11211);
/*   여기서 뭔가를 하세요 ..   */
memcache_close(
$memcache_obj);
/* OO API */$memcache_obj =  Memcache;
$memcache_obj->connect('memcache_host', 11211);
/*  여기서 뭔가를 하세요 ..  */$memcache_obj->close();
?>

PHP 멤캐시 요약

2.4.Memcache::addServer

2.4.1.说明

bool Memcache::addServer( 문자열 $host [, int $port [ , bool $percious [, int $weight [, int $timeout [, int $retry_interval [, bool $status [, 콜백 $failure_callback ]]]]]] )

向对象添加一个服务器(注:addServer没有连接到服务器的动작품,所以在memcache进程没有启动的时候,执行addServer成功也会返回true)

2.4.2.参数

호스트               服务器域name或 IP

포트              端口号,默认为 11211

지속적         是否使用常连接,默认为 TRUE

체중             权认个服务器设置中比值

시간 초과          连接服务器失效的秒数,修改默认值 1 时要三思,有可能失去所有缓存方优势导致连接变得很慢

retry_interval    服务器连接失败时的 重试频率 默认是 15 秒一次,如果设置为 -1 将禁止自动载了 中加载了 via dl() 时,无论本参数还是常连接设置参数city会失效。

                        每一个失败的服务器在失效前期 ,选择后端请求时会被跳过而不服务于请求.一个过期的连接将成功的连接或者被标记为失败的连接더 많은 부하가 발생합니다. 🎜>상태             控system服务器是否被标记为온라인, 设置这个参数为 FALSE 并设置 retry_interval 为 -1 可以使连接失败的服务器被放到一个描述不响应请求的服务器池子中,对这个服务器的请求将失败,接受设置为失败服务器的设置,默认参数为 TRUE, 代表该服务器可以被义为온라인.

failure_callback   失败时的回调函数 ,函数 两个参数为失败服务器호스트 이름 와 포트

2.4.3.返回值

성공한 功返回 TRUE, 失败返回 FALSE.

注:지금测试addServer函数的时候我们主要测试了其参数retry_intervalawastatus

2.4. 4.范例

2.4.4.1.retry_interval参数적测试

php
$mem = new Memcache;
$is_add = $mem->addServer('localhost', 11211, , 1, 1, 15, ); // retrt_interval=15$is_set = $mem->set('key1', '중화인민공화국');
?>

위 예시에서 localhost 서버가 다운되었거나 Memcache 데몬이 다운된 경우 실행 시 연결 요청 서버에 장애가 발생한 후 15초가 지나면 자동으로 서버에 연결을 시도하지만 이 15초 이내에는 서버에 연결하지 않습니다. 즉, 요청이 있는 한 서버에 연결을 시도합니다. 15초 이내에 이루어지지만 각 서버 연결에 대한 재시도는 독립적입니다. 예를 들어 한 번에 두 개의 서버를 추가했는데 하나는 localhost이고 다른 하나는 172.16.100.60입니다. 각각의 연결이 실패한 시간부터 계산하면 해당 서버는 요청이 있는 한 15초마다 해당 서버에 연결됩니다. 해당 서버.

2.4.4.2 retry_interval과 상태의 조합

php
$mem = Memcache;
$is_add = $mem->addServer('localhost', 11211, , 1 , 1, -1 , false) // retrt_interval=-1, status=false $is_set = $mem->세트(' key1', '중화인민공화국');
?>


위의 retrt_interval=-1, status=false의 경우 연결에 실패한 서버는 요청에 응답하지 않는 풀에 배치되므로 키 할당 알고리즘에 영향을 주지 않습니다. 오류를 즉시 반환할지, 실패할지, 장애 조치할지 여부는 memcache.allow_failover 설정에 따라 다릅니다. set, add, replacement, get 및 기타 요청을 실행할 때 memcache 프로세스가 정상적으로 실행 중이더라도 실패하고 false를 반환합니다.

2.4.4.3. 상태 매개변수 테스트

retry_interval과 함께 사용되는 것 외에도 상태만 사용하면 memcache::getServerStatu 함수에서 얻은 결과에 영향을 미칩니다.

상관없습니다. memcache 프로세스가 정상적으로 실행 중인지, 충돌이 발생했는지 상태가 true이면 getServerStatus의 결과가 true이고, 그렇지 않으면 false입니다.

그러나 memcache 프로세스가 정상적으로 실행 중일 때는 다음과 같이 설정합니다. , 추가, 교체, 가져오기 등의 기능이 적용되지 않습니다.

2.5.Memcache::add

2.5.1. 설명

bool Memcache::추가( 문자열 $key , 혼합 $var [, int $flag [ , int $expire ]] )

추가 캐싱할 데이터가 캐싱 데이터의 키로 서버에 존재하지 않는 경우

2.5.2. Parameter

key               " 문자

var 값, 정수 유형은 직접 저장되고, 다른 유형은 직렬화되어 저장되며, 최대값은 1M입니다

flag zlib 압축을 사용할지 여부 플래그=MEMCACHE_COMPRESSED일 경우 데이터가 매우 작은 경우에는 zlib 압축이 사용되지 않으며 데이터가 특정 크기에 도달한 경우에만 해당 데이터에 대해 zlib 압축이 수행됩니다. (최소값을 압축하기 위한 특정 테스트 데이터는 없습니다.)

expire 만료 시간, 0은 만료되지 않음을 의미하며 unix 타임스탬프 형식을 사용할 수 있으며 현재 시간으로부터의 초 수를 사용할 수 있습니다. 초 2592000보다 큼(30일)

2.5.3. 반환 값

성공하면 TRUE, 실패하면 FALSE를 반환합니다. 키가 이미 있으면 memcache:;add()의 다른 측면입니다. memcache와 동일하게 동작합니다. ::set은

2.5.4와 유사합니다. 예

PHP 멤캐시 요약

< ;?php$memcache_obj = memcache_connect("localhost", 11211);/* 절차적 API */memcache_add($memcache_obj, 'var_key', ' 테스트 변수', FALSE, 30 ) ;/* OO API */$memcache_obj->add('var_key', '테스트 변수', 거짓, 30);?>

PHP 멤캐시 요약


2.6.Memcache::replace

2.6.1. 🎜>

bool Memcache

::replace( string $key , 혼합 $var [, int $flag [, int $expire ]] )

지정된 기존 키의 캐시 변수 내용 바꾸기2.6.2 매개변수

key의 키 캐시된 데이터, 길이는 250자를 초과할 수 없습니다.

var 값, 정수 유형은 직접 저장되고, 다른 유형은 직렬화되어 저장되며, 최대 값은 1M

flag zlib 사용 여부 압축, flag=MEMCACHE_COMPRESSED 인 경우 데이터가 매우 작을 때는 zlib 압축이 사용되지 않으며 데이터가 특정 크기에 도달한 경우에만 해당 데이터에 대해 zlib 압축이 수행됩니다. (최소값을 압축하기 위한 특정 테스트 데이터는 없습니다.)

expire 만료 시간, 0은 만료되지 않음을 의미하며 unix 타임스탬프 형식을 사용할 수 있으며 현재 시간으로부터의 초 수를 사용할 수 있습니다. 초 2592000(30일)보다 큼

2.6.3. 반환 값

성공하면 TRUE를, 실패하면 FALSE를 반환합니다.

2.6.4.예

php
$memcache_obj = memcache_connect('memcache_host ', 11211);
/* 절차적 API */
memcache_replace(
$memcache_obj, "test_key", "일부 변수" , 거짓, 30);
/* OO API */$memcache_obj->교체( "test_key", "일부 변수" , 거짓, 30);
?>

PHP 멤캐시 요약


2.7.Memcache: :set

2.7.1.说明

bool Memcache::set ( string  $key , 혼합 $var [, int $flag [,  int $expire ]] )

设置一个指定 키 的缓存变weight内容

2.7.2.参数

키                缓存数据的键, 其长titude不能超过250个字符

var               值,整型将直接存储,其他类型将被序列化存储,其值最大为1M

플래그               是否使用 zlib 压缩 ,当flag=MEMCACHE_COMPRESSED的时侯 ,数据很small 时候不会采用 zlib压缩,只有数据达到一定大小才对数据进行zlib压缩。(没有具体的测试数据进行压缩的最小值是多少)

expire             过期时间,0 为永不过期,可使用 unix 时间戳格式或距离当前时间的秒数,设为秒数时不能大于 2592000 (30 天)

2.7.3.返回值

成功返回 TRUE,失败返回 FALSE。

2.7.4.范例

PHP 멤캐시 요약

php/* 절차적 API  *//* memcached 서버에 연결 */$memcache_obj = memcache_connect('memcache_host', 11211); /*플래그 값으로 0을 사용하여 'var_key' 키가 있는 항목의 값 설정, 압축은 사용되지 않음 만료 시간은 30초*/memcache_set($memcache_obj, 'var_key', '일부 변수' , 0, 30);에코 memcache_get($memcache_obj, 'var_key');?>

PHP 멤캐시 요약

PHP 멤캐시 요약

php/* OO API */$memcache_obj = new Memcache;/* memcached 서버에 연결 */$memcache_obj->connect('memcache_host', 11211);/*'var_key' 키를 사용하여 항목 값 설정, 즉시 압축 만료 시간은 50초*/$memcache_obj->set( 'var_key', '정말로 큰 변수', MEMCACHE_COMPRESSED, 50);에코 $memcache_obj-> get('var_key');?>

PHP 멤캐시 요약


2.8.Memcache::get

2.8.1.说明

string Memcache::get ( string $key [, int &$flags ] )

배열 Memcache ::get ( array $keys [, array &$flags ] )

获取某个 key 的变weight缓存值

2.8.2.参数

key                缓存值的键

플래그              如果是传址某个变weight,获取缓存值被set或是add的flag结果将被存于该变weight

2.8.3.返回值

返回缓存的指定 key 的变weight内容或者是在失败或该变weight的值不存在时返回 FALSE

 如果传如果传流的key的数组中的key書不存在,返回的结果是一个空数组,반지则返回key与缓存值相关联的关联数组

2.8.4.范例

PHP 멤캐시 요약

php
/* 절차적 API */$ memcache_obj = memcache_connect('memcache_host', 11211);
$var = memcache_get($memcache_obj,  'some_key');
/* OO API */$memcache_obj = new Memcache;
$memcache_obj-> connect('memcache_host', 11211);
$var  = $memcache_obj->get('some_key');
/*
키 배열을 매개변수로 사용할 수도 있습니다.
해당 항목을 서버에서 찾을 수 없는 경우 결과
배열 그러한 키는 단순히 포함되지 않습니다.
*//* 절차적 API */$memcache_obj  = memcache_connect('memcache_host', 11211 );
$var = memcache_get($memcache_obj, 배열('some_key', 'another_key'));
//如果some_key,another_key불存재 $var = array();
//如果some_key,another_key存재     $var = array('some_key'=>'缓存值', 'another_key' =>'缓存值');

/*
 OO API */$memcache_obj =  Memcache;
$memcache_obj->connect('memcache_host', 11211);
$var = $memcache_obj->get(배열('some_key', 'second_key'));
?>

PHP 멤캐시 요약

2.9.Memcache::delete

2.9.1.说明

bool Memcache::삭제( 문자열 $key[, int $timeout ] )

删除某一个变weight的缓存

2.9.2.参数

key          缓存的键 键值不能为null和'',当它等于前side两个值的时候php会有警告错误。

시간 초과   删除这项的时间,如果它等于0,这项将被立刻删除反之如果它等于30秒,那么这项被删除재30秒内 

2.9.3.返回值

成功返回 TRUE,失败返回 FALSE.

2.9.4.范例

PHP 멤캐시 요약

php
/* 절차적 API */$ memcache_obj = memcache_connect('memcache_host', 11211);
/* 10초 후에 항목이 서버에 의해 삭제됩니다.*/
memcache_delete(
$memcache_obj, 'key_to_delete', 10) ;
/* OO API */$memcache_obj =  Memcache;
$memcache_obj->connect('memcache_host ', 11211);
$memcache_obj->delete('key_to_delete', 10);
?>

PHP 멤캐시 요약

2.10.Memcache::flush

2.10.1.说明

bool Memcache::flush ( void )

공중의 공간이 없습니다.

2.10.2.返回值

성공功返回 TRUE,失败返回 FALSE。

2.10.3.范例

PHP 멤캐시 요약

< ;?php
/* 절차적 API */$memcache_obj = memcache_connect('memcache_host', 11211);memcache_flush (
$memcache_obj);
/* OO API */ $memcache_obj = 신규 Memcache;
$memcache_obj ->connect('memcache_host', 11211);
$memcache_obj->플러시();
?>

PHP 멤캐시 요약

2.11.Memcache::getExtendedStats

2.11.1.说明

배열 Memcache::getExtendedStats ([ 문자열 $ 유형 [, int $slabid [, int $limit ]]] )

获取所有服务器扩 Exhibition静态信息 

2.11 .2.参数

유형       静态信息类型,有效值包括{reset, malloc, 지도, 캐시 덤프, 슬라브, 항목, 크기},依一 Illuminating规则协议这个可选参数是为了方便开发人员查看不同类别的信息而输入的标题

slabid   用于按指定类型联信设置 캐시 堆为有效的文到堆中。缓存堆被被命令绑定到服务器上并被严格于调试用途

한도      用于按指定类型联合设置 캐시 堆为输入的数字所限所限 제 립 大小到堆 默认值为 100 

2.11.3.返回值

返回一个由服务器扩返回 거짓 

2.11.4.范例

php
$memcache_obj = new Memcache;
$memcache_obj->addServer(‘memcache_host‘, 11211);
$memcache_obj->addServer(‘failed_host‘, 11211);
$stats = $memcache_obj->getExtendedStats(); print_r($stats);
?>

输出结果

PHP 멤캐시 요약

Array(
[memcache_host
:11211=> Array(
[pid] 
=> 3756
[uptime] 
=> 603011
[
time=> 1133810435
[version] 
=> 1.1.12
[rusage_user] 
=> 0.451931
[rusage_system] 
=> 0.634903
[curr_items] 
=> 2483
[total_items] 
=> 3079
[bytes] 
=> 2718136
[curr_connections] 
=> 2
[total_connections] 
=> 807
[connection_structures] 
=> 13
[cmd_get] 
=> 9748
[cmd_set] 
=> 3096
[get_hits] 
=> 5976
[get_misses] 
=> 3772
[bytes_read] 
=> 3448968
[bytes_written] 
=> 2318883
[limit_maxbytes] 
=> 33554432
)
,
[failed_host
:11211=>
)

PHP 멤캐시 요약


2.12.Memcache::getStats

2.12.1.说明

array Memcache::getStats ([ string $type [, int $slabid [, int $limit ]]] )

获取最后添加服务器静态信息 

2.12.2.参数

type       静态信息类型,有效值包括{reset, malloc, maps, cachedump, slabs, items, sizes},依照一定规则协议这个可选参数是为了方便开发人员查看不同类别的信息而输入的标题

slabid   用于按指定类型联合设置 cache 堆为有效的片到堆中。缓存堆被被命令绑定到服务器上并被严格的用于调试用途

limit      用于按指定类型联合设置 cache 堆为输入的数字所限制的大小到堆,默认值为 100 

2.12.3.返回值

返回一个服务器静态信息数组,失败时返回 FALSE 

2.13.Memcache::getServerStatus

2.13.1. 설명

int Memcache::getServerStatus( 문자열 $host [, int $port ] )

호스트와 포트를 입력하여 해당 서버 정보를 가져옵니다

2.13.2. 매개변수

호스트 서버 도메인 이름 또는 IP

포트 포트 번호, 기본값은 11211

2.13.3. 반환 값

서버 상태를 반환하고, 0은 실패를 의미하고, 그 외의 경우에는 0이 아닌 숫자를 반환합니다.

2.13 .4.예

PHP 멤캐시 요약

php
/*OO API */$memcache = new Memcache;
$memcache->addServer('memcache_host', 11211);
echo $memcache- > /* 절차적 API */$memcache =
memcache_connect('memcache_host' , 11211);echo memcache_get_server_status($memcache, 'memcache_host',
11211);?>
2.14 .Memcache::getVersion
2.14.1. 설명

문자열PHP 멤캐시 요약 Memcache

:: getVersion(void)

서버의 버전 번호 정보를 가져옵니다2.14.2. 반환 값을 반환합니다. 서버 버전 번호 문자열, 실패 반환 FALSE 2.14.3. 예

< ;?

php

/*

OO API PHP 멤캐시 요약*/

$memcache

=
Memcache;$memcache->connect('memcache_host' , 11211
);echo $memcache->getVersion();
/*
절차적 API */$memcache =
memcache_connect('memcache_host', 11211 );echo memcache_get_version($memcache) ;?>

2.15.Memcache: :setCompressThreshold

bool Memcache

::PHP 멤캐시 요약setCompressThreshold ( int

$threshold [

,

float $min_savings ] ) 설정 압축 제한2.15.2. 매개변수threshold는 자동 압축을 제어하는 ​​변수 길이의 최소값을 설정합니다.min_saving은 최소 압축 비율은 0 - 1 사이여야 하며 기본값은 0.2이며 이는 20%의 압축 비율을 나타냅니다. 2.15.3 반환 값

성공하면 TRUE를 반환합니다. 실패하면 거짓입니다.

2.15.4.范例

PHP 멤캐시 요약

php
/* OO API */$memcache_obj = new Memcache;
$memcache_obj->addServer('memcache_host', 11211);
$memcache_obj->setCompressThreshold (20000, 0.2);
/*  절차적 API */$memcache_obj = memcache_connect('memcache_host', 11211);
memcache_set_compress_threshold(
$memcache_obj, 20000, 0.2);
?>

PHP 멤캐시 요약

2.16.Memcache::setServerParams

2.16.1.说明

bool Memcache::setServerParams ( string $host  [, int $port [, int $timeout [, int $retry_interval [, bool $status [, 콜백 $failure_callback ]]]] )

Memcache 버전 2.1.0 后增加的函数,运行时设置服务器参数

2.16.2.参数

host           服务器域name或 IP

port 端口号,默认为 11211

시간 초과    超时连接失效的秒数,修改默认值 1 时要 3思,有可能失去所有缓存方优势导致连接变得很慢

retry_interval    试频率,默认是 15 秒一次,如果设置为 -1 将禁止自动dl()을 통해 동적으로 当扩을 확장할 수 있습니다.的生存期,选择后端请求时会被跳过而不服务于请求.一个过期的连接将成功的连接或被标记为失败的连接等待下一次 这种效果就是说每一个 웹 서버 的子进程는 服务于页面时的试连接city에 있습니다.跟他们自己的试频率有关。

상태    控system服务器是否被标记为 online, 设置这个参数为 FALSE 并设置 retry_interval为 -1 可以使连接失败的服务器被放到一个描述不响应请求的服务器池子中,对这个服务器的请求将失败,接受设置为失败服务器的设置,默认参数为 TRUE, 代表该服务器可以被义为 온라인입니다.

failure_callback    失败时的回调函数 ,函数的两个参数为失败服务器의 호스트 이름과 포트 

2.16.3.返回值

成功返回 TRUE,失败返回。

2.16.4 .范例

PHP 멤캐시 요약

php
함수 _callback_memcache_failure($host, $port)
{
인쇄 " memcache '$host:$port' 실패했습니다";
}
/* OO API */$memcache = new Memcache;
// 오프라인 모드에서 서버 추가$memcache->addServer('memcache_host', 11211 , 거짓, 1,  1, -1,  거짓);
// 서버를 다시 온라인으로 전환$memcache->setServerParams('memcache_host', 11211, 1, 15, , '_callback_memcache_failure');
/* 절차적 API */$memcache_obj= memcache_connect('memcache_host', 11211);
memcache_set_server_params(
$memcache_obj, 'memcache_host', 11211,  1, 15, , '_callback_memcache_failure');
?>

PHP 멤캐시 요약

2.17.Memcache::increment

2.17.1.说明

int Memcache ::증분 ( 문자열 $key [, int $value ] )

给指정 키 的缓存变weight一个增值,如果该变weight不是数字时不会被转化为数字,这个增值将会加到该变weight원유의 数字 上,变weight不存不会新增变weight,对于压缩存储的变不weight 사용 가능한 본침법会失败。 

2.17.2.参数

key 缓存值的键

var 值,整型将直接存储,其他类型将被序列化存储 

2.17.3.返回值

成功返回新的变weight值,失败返回 FALSE。

2.17.4.范例

PHP 멤캐시 요약

php
/* 절차적 API * /$memcache_obj = memcache_connect('memcache_host', 11211);
/* 2만큼 카운터 증가*/$current_value = memcache_increment($memcache_obj, '카운터',  2);
/* OO API */$memcache_obj =  Memcache;
$ memcache_obj->connect('memcache_host', 11211);
/* 카운터를 3씩 증가 */$current_value = $memcache_obj->increment('counter', 3);
?>

PHP 멤캐시 요약

2.18.Memcache::decrement

2.18.2 설명

int Memcache::감소( string $key [, int $value ] )

지정된 키의 캐시 변수에 감소 값을 지정합니다. 증가 연산과 유사하게 이 값은 원래 변수에서 빼집니다. 새 항목의 값은 숫자로 변환된 후 빼집니다. 0보다 작지 않아야 합니다. 해당 값 방법이 실패하므로 저장된 변수를 압축하는 데 이 함수를 사용하지 마십시오.

2.18.2.파라미터

캐시 값의 키 키

var 값, 정수형은 직접 저장, 그 외의 유형은 직렬화하여 저장

2.18.3.반환값

은 성공하면 새로운 변수값을, 실패하면 FALSE를 반환합니다.

2.18.4. 예

PHP 멤캐시 요약

php
/* 절차적 API */$memcache_obj =memcache_connect('memcache_host', 11211);
/* 항목을 2만큼 감소 */$new_value = memcache_decrement($ memcache_obj, 'test_item', 2);
/* OO API */$memcache_obj = new Memcache;
$memcache_obj->connect('memcache_host', 11211);
/* 항목 3씩 감소 */$new_value = $memcache_obj->decrement('test_item', 3);
?>

PHP 멤캐시 요약

2.19.memcache_debug

2.19.1 설명

bool memcache_debug ( bool $on_off )

Memcache 디버거 사용 여부 설정 on 에서 값은 TRUE 또는 FALSE입니다. PHP 설치 중에 --enable-debug 옵션이 사용되는지 여부에 따라 이 함수는 사용된 경우에만 TRUE를 반환하고, 그렇지 않으면 항상 FALSE를 반환합니다.

2.19.2.매개변수

on_off는 디버깅 모드 켜짐, TRUE 켜짐, FALSE 꺼짐을 설정합니다

2.19.3 반환 값

php 설치 중에 --enable-debug 옵션이 사용되면 TRUE를 반환하고, 그렇지 않으면 FALSE를 반환합니다.

이상으로 PHP의 memcache에 대한 개요를 다양한 측면에서 소개하였습니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되었으면 좋겠습니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
이전 기사:에코와 var_dump다음 기사:에코와 var_dump