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