php的memcached扩展的构造方法提供了一个可选参数persistent_id,手册描述如下:
默认情况下,Memcached实例在请求结束后会被销毁。但可以在创建时通过persistent_id为每个实例指定唯一的ID, 在请求间共享实例。所有通过相同的persistent_id值创建的实例共享同一个连接。
当php进程与Memcached建立了长连接后,就不要再添加重复的Memcaced服务器,不然会导致该persistent_id的mc服务器会越来越多,php官方手册例子如下:
-
<?php
-
$mc = new Memcached('mc');
-
$mc->setOption(Memcached::OPT_LIBKETAMA_COMPATIBLE, true);
-
if (!count($mc->getServerList())) {
-
$mc->addServers(array(
-
array('mc1.example.com',11211),
-
array('mc2.example.com',11211),
-
));
-
}
-
?>
对于生产环境,php-fpm进程多达上百个,对于每个php-fpm进程都要通过addServers方法添加mc服务器。
阅读(3722) | 评论(0) | 转发(0) |