无效的Memcache->连接成员变量错误

时间:2013-01-08 14:37:58

标签: php zend-framework nginx memcached

我们目前正在使用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有时会遇到一些问题。当服务器由于某些问题而关闭时,是否可能出现这种问题?我真的不知道导致这些警告的原因。我怎样才能纠正它,或者至少我该如何避免这些警告呢?

4 个答案:

答案 0 :(得分:0)

我找到了3个可能对您有用的参考资料

  1. Limit of file system and memcache
  2. Possible memory leaks
  3. Memcache vs Memcached

答案 1 :(得分:0)

您需要检查关键字最多250个字符和最大值:1MB

答案 2 :(得分:0)

你最近编译过你自己的php吗?可能版本不同步。

答案 3 :(得分:0)

我遇到了同样的问题。 当我在__destruct中调用memcache对象来更新我的对象的状态时,我就会发生错误。 这是我的解决方案: 在类函数中调用对象,您可以在其中更改状态,并确保将memcache实例发送到此类。