首页  >  文章  >  后端开发  >  php无法操作memcache

php无法操作memcache

WBOY
WBOY原创
2016-06-23 13:38:511129浏览

我phpinfo()里面显示有memcache了 memcached服务也起了 为何php代码还是不能操作memcache? 不知道该从何排查问题了,在此请教,先谢过。

$memcache = new Memcache();//var_dump($memcache->connect('localhost', 11211));die;if (!$memcache->connect('localhost', 11211))  die('could not connect');$memcache->set('key', 'test');$get_value = $memcache->get('key');echo $get_value;       

网页访问这个php返回absorted状态


回复讨论(解决方案)

phpinfo()里面显示有memcache了 memcached服务也起了

memcache与memcached是不同的。

后台进程确认一下服务器端是否正常

phpinfo()里面显示有memcache了 memcached服务也起了

memcache与memcached是不同的。




memcache是客户端,memcached是服务端服务
我说 phpinfo()里面显示有memcache了,就是想表达php的memcache扩展我已经安装上了。
现在的问题就是  扩展装了,服务起了,php还是没法操作memcache~

后台进程确认一下服务器端是否正常



我确认了,服务端是正常的。
我用telnet localhost 11211能正常连接memcache并且进行存储读取的操作。

现在的问题时  php无法操作memcache。   

absorted状态 应该是客户端断开了,而不是服务端断你开了
多发生与浏览器中

仅php代码不会是这样的
建议你先确定 php 的错误检查没有被关闭,错误显示是打开的

absorted状态 应该是客户端断开了,而不是服务端断你开了
多发生与浏览器中

仅php代码不会是这样的
建议你先确定 php 的错误检查没有被关闭,错误显示是打开的



<?phpini_set('display_errors', 1);$memcache = new Memcache();var_dump($memcache);die();//加上这一行浏览器访问就不是absorted状态if (!$memcache->connect('localhost', 11211))  die('could not connect');$memcache->set('key', 'test');$get_value = $memcache->get('key');echo $get_value;


加上第五行die(); 浏览器就不是absorted状态,返回object(Memcache)#1 (0) { } 
再后续调试 发现问题时出在$memcache->connect 这里,这一段导致了absorted吧

把 localhost 改成 127.0.0.1 看看

另外 echo $memcache->getVersion();
也可以看到是否正常

另外 echo $memcache->getVersion();
也可以看到是否正常



改成localhost也还是同样的错误
$memcache = new Memcache();
echo $memcache->getVersion();

这样的话会出: Warning: MemcachePool::getversion(): No servers added to memcache connection in xxx line 5
我尝试$memcache = new Memcache();$memcache->addserver('127.0.0.1', 11211);  依然absorted

$memcache = new Memcache();
$memcache->connect('localhost', 11211);
echo $memcache->getVersion();
如果未连接上,就会报错

我重新下了个stable 版的memcache解决了问题

下载地址:http://pecl.php.net/package/memcache

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn