PHP::Memcached 长链接分析

开启或关闭长链接支持,参考:http://leeon.me/a/php-memcached

短链实验场景测试代码:1.php

<?php

$mc = new Memcached();
$mc->setOption(Memcached::OPT_LIBKETAMA_COMPATIBLE, true);

$mc->addServers(array(
        array(‘10.75.31.39‘,60000),
));

print_r($mc->getStats());
sleep(2);

?>

 

长链实验场景测试代码:2.php

<?php

$mc = new Memcached(‘mc‘);
$mc->setOption(Memcached::OPT_LIBKETAMA_COMPATIBLE, true);

if (!count($mc->getServerList())) {
    $mc->addServers(array(
        array(‘10.75.31.39‘,60000),
    ));
}

print_r($mc->getStats());
sleep(2);

?>

 

环境:  

Nginx+phpfpm

phpfpm 静态模式,单进程。

 

A实验过程:

  1. 访问curl http://127.0.0.1/1.php ,等输出。

  2. 待第一步有输出时,另起窗口netstat -anpt | grep :60000 。

  结论,每次访问的时候,访问后端资源都会新建不同链接。

B实验过程:

  1. 访问curl http://127.0.0.1/2.php ,等输出。

  2. 待第一步有输出时,另起窗口netstat -anpt | grep :60000 。

  结论,每次访问的时候,访问后端资源都会新建相同的链接。

 

最后注意,即使请求结束,仍然可以看到6000端口的链接,直到这个php-fpm进程被回收。理论上存在空闲链接不会释放。

如果担心踩坑,可以代码最后加入官方提供的 MEMCACHED::QUIT()。

 

参考资料:

http://php.net/manual/zh/memcached.getstats.php

http://haili.me/archives/530.html

http://leeon.me/a/php-memcached

[原创] PHP::Memcached 长链接分析,古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。