添加分布式的多个memcached服务器
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了添加分布式的多个memcached服务器相关的知识,希望对你有一定的参考价值。
如果有多台memcached服务器端,最好使用Memcache::addServer()来连接服务前端。而不是Memcache::connect()去连接memcached服务器,是因为php客户端是利用服务器池,根据算法将key分配到不同的服务器中。
boolMemcache::addServer (string $host [,int $port =11211[,bool $persistent [,int $weight [,int $timeout [,int $retry_interval [,bool $status [, callback $failure_callback [,int $timeoutms ]]]]]]]])
第一个参数$host:表示服务器的地址;
第二个参数$port:表示端口;
第三个参数$persistent:表示是否是一个持续连接,默认为true;
第四个参数$weight:表示这台服务器在所有服务器中所占的权重;
第五个参数$timeout:表示连接的持续时间;
第六个参数$retry_interval:表示连接重试的间隔时间,默认为15,设置为-1表示不进行重试;
第七个参数$status:用来控制服务器的在线状态;
第八个参数$failure_callback:允许设置一个回调函数来处理错误信息。
获取服务器的状态信息:
1、
array Memcache::getStats ([string $type [,int $slabid [,int $limit =100]]]) //获取当前服务器的运行状态
<?php
$memcache_obj =newMemcache;
$memcache_obj->addServer(‘127.0.0.1‘,11211);
var_dump($memcache_obj->getStats());
?>
2、
array Memcache::getExtendedStats ([string $type [,int $slabid [,int $limit =100]]]) //获取所有服务器扩展状态信息
<?php
$memcache_obj =newMemcache;
//返回一个二维关联数组的服务器统计信息或者在失败时返回 FALSE
$memcache_obj -> addServer (‘memcache_host‘,11211);
$memcache_obj -> addServer (‘failed_host‘,11211);
$stats = $memcache_obj -> getExtendedStats ();
print_r ( $stats );
?>
3、
intMemcache::getServerStatus (string $host [,int $port =11211])//输入主机和端口信息来获取相应的服务器状态信息
<?php
/* OO API */
$memcache =newMemcache;
$memcache -> addServer (‘memcache_host‘,11211);
echo $memcache -> getServerStatus (‘memcache_host‘,11211);
/* procedural API */
$memcache = memcache_connect (‘memcache_host‘,11211);
echo memcache_get_server_status ( $memcache ,‘memcache_host‘,11211);
?>
以上是关于添加分布式的多个memcached服务器的主要内容,如果未能解决你的问题,请参考以下文章