添加分布式的多个memcached服务器

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了添加分布式的多个memcached服务器相关的知识,希望对你有一定的参考价值。

       如果有多台memcached服务器端,最好使用Memcache::addServer()来连接服务前端。而不是Memcache::connect()去连接memcached服务器,是因为php客户端是利用服务器池,根据算法将key分配到不同的服务器中。

  1. 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、
  1. array Memcache::getStats ([string $type [,int $slabid [,int $limit =100]]]) //获取当前服务器的运行状态
  1. <?php
  2. $memcache_obj =newMemcache;
  3. $memcache_obj->addServer(‘127.0.0.1‘,11211);
  4. var_dump($memcache_obj->getStats());
  5. ?>
       2、
  1. array Memcache::getExtendedStats ([string $type [,int $slabid [,int $limit =100]]]) //获取所有服务器扩展状态信息
  1. <?php
  2. $memcache_obj =newMemcache;
  3. //返回一个二维关联数组的服务器统计信息或者在失败时返回 FALSE
  4. $memcache_obj -> addServer (‘memcache_host‘,11211);
  5. $memcache_obj -> addServer (‘failed_host‘,11211);
  6. $stats = $memcache_obj -> getExtendedStats ();
  7. print_r ( $stats );
  8. ?>
       3、
  1. intMemcache::getServerStatus (string $host [,int $port =11211])//输入主机和端口信息来获取相应的服务器状态信息
  1. <?php
  2. /* OO API */
  3. $memcache =newMemcache;
  4. $memcache -> addServer (‘memcache_host‘,11211);
  5. echo $memcache -> getServerStatus (‘memcache_host‘,11211);
  6. /* procedural API */
  7. $memcache = memcache_connect (‘memcache_host‘,11211);
  8. echo memcache_get_server_status ( $memcache ,‘memcache_host‘,11211);
  9. ?>

以上是关于添加分布式的多个memcached服务器的主要内容,如果未能解决你的问题,请参考以下文章

分布式memcache

Memcached 分布式集群

如何正确地将多个片段添加到片段过渡?

memcached分布式实现原理

警惕Memcached远程代码执行漏洞(最后两张图亮了!)

php开发memcached