我们目前正在使用Nginx作为服务器,并使用memcached作为缓存机制。我正在检查PHP错误日志和许多关于memcached的PHP警告引起了我的注意。
PHP Warning: Memcache::get(): Invalid Memcache->connection member variable in {directory}/library/Zend/Cache/Backend/Memcached.php on line 180
在指向的那一行,有一段代码:
$tmp = $this->_memcache->get($id);
我还看到许多其他PHP警告带有相同的警告消息但与memcache对象的不同函数调用不同:
PHP Warning: Memcache::add(): Invalid Memcache->connection member variable in {directory}/library/Zend/Cache/Backend/Memcached.php on line 180
PHP Warning: Memcache::set(): Invalid Memcache->connection member variable in {directory}/library/Zend/Cache/Backend/Memcached.php on line 230
PHP Warning: Memcache::delete(): Invalid Memcache->connection member variable in {directory}/library/Zend/Cache/Backend/Memcached.php on line 323
我在网上搜索过但找不到真正有用的东西。我们的memcached有时会遇到一些问题。当服务器由于某些问题而关闭时,是否可能出现这种问题?我真的不知道导致这些警告的原因。我怎样才能纠正它,或者至少我该如何避免这些警告呢?
答案 0 :(得分:0)
我找到了3个可能对您有用的参考资料
答案 1 :(得分:0)
您需要检查关键字最多250个字符和最大值:1MB
答案 2 :(得分:0)
你最近编译过你自己的php吗?可能版本不同步。
答案 3 :(得分:0)
我遇到了同样的问题。 当我在__destruct中调用memcache对象来更新我的对象的状态时,我就会发生错误。 这是我的解决方案: 在类函数中调用对象,您可以在其中更改状态,并确保将memcache实例发送到此类。