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

Posted

技术标签:

【中文标题】无效的 Memcache-> 连接成员变量错误【英文标题】:Invalid Memcache->connection member variable errors 【发布时间】:2012-12-22 10:38:55 【问题描述】:

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

【问题讨论】:

您找到解决方案了吗?如果你不介意... 在尝试从守护进程获取内容之前,您是否创建了连接? 【参考方案1】:

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

【讨论】:

【参考方案2】:

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

【讨论】:

这并不是他们问题的真正答案。【参考方案3】:

您需要检查 key max 250 chars 和 value max : 1MB

【讨论】:

【参考方案4】:

我找到了 3 个可能对你有帮助的参考资料

    Limit of file system and memcache Possible memory leaks Memcache vs Memcached

【讨论】:

以上是关于无效的 Memcache-> 连接成员变量错误的主要内容,如果未能解决你的问题,请参考以下文章

Memcache 连接超时 啥原因

使用标准 php 库使多个 memcache 键无效的最佳方法?

为啥宽带连接的时候提示“域上的用户名或密码无效 ”?输入绝对没错的

封装

使用java连接memcache服务器

PHP 结合memcache make 过程的报错解决办法