Это происходит, когда вы сохраняете объект, который имеет ссылки на источники, такие как дескрипторы файлов или соединения с базой данных.Это также может произойти, если получаемый вами объект принадлежит к классу, который не загружается при получении его из memcached.
Чтобы выяснить, какой ключ memcached не работает, вы можете установить собственный обработчик ошибок, который можетключ memcached, непосредственно перед вызовом Memcached :: get и впоследствии восстановите его.Затем вы можете записать предупреждение вместе с ключом.
[Изменить] Вот пример:
<?
class MyMemcachedWrapper {
private $key;
public function get($key) {
// Save the key in an instance variable so it will be available in
// the error handler
$this->key = $key;
set_error_handler(array($this, 'handleError'));
$value = Memcached::get($key);
restore_error_handler();
return $value;
}
public function handleError($errno, $errstr) {
// Here we have both the key and the error message from memcached
$message = "Memcached error '$errstr' while fetching key '{this->key}'";
// ... and we can log it to a file or db or something
file_put_contents("memcached-errors.log", $message, FILE_APPEND);
}
}
// Then use it like this
$memcached_wrapper = new MyMemcachedWrapper();
$value = $memcached_wrapper->get('xyz');