11

我们目前使用 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

4 回答 4

0

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

  1. 文件系统和内存缓存的限制
  2. 可能的内存泄漏
  3. Memcache 与 Memcached
于 2013-03-01T11:48:12.410 回答
0

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

于 2014-03-01T04:47:05.723 回答
0

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

于 2013-09-04T17:38:38.903 回答
0

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

于 2013-11-10T01:52:48.077 回答