首页 > 代码库 > [原创] PHP::Memcached 长链接分析
[原创] 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
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。