无效的 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-> 连接成员变量错误的主要内容,如果未能解决你的问题,请参考以下文章
使用标准 php 库使多个 memcache 键无效的最佳方法?