欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

php无法操作memcache

程序员文章站 2022-05-09 21:48:44
...
我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 的错误检查没有被关闭,错误显示是打开的



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