我的环境是docker下跑的php-fpm,php版本5.6.40 memcache版本2.2.6,当addServer选择长连接参数时,通过netstat能获取到建立了2个tcp连接(fpm的pm.start_servers为2),此时没有问题。
奇怪的是,一段时间后,程序提示:
netstat也找不到这两个连接了,我推测是这两个长连接因为某些原因关闭了,但memcache的addServer所用到的hash表并没有更新到,所以出现的错误,请问有人遇到过这个问题吗,是怎么解决的呢?
ps:通过persistent=fase这个设置参数,也就是关闭memcache的长连接,或重启fpm,这个问题会消失。
本身网络链接都是不靠谱的,每次用之前必须要检查一次是否正在连接中,如果未连接就重连,你这个估计是触发了某些策略,比如30秒不请求数据,释放链接,这样可以清空链接资源。