2012-04-26 3 views
2

Использование PHP, я сохраняющийся массив в Memcached в рамках следующего процесса:Что вызывает memcached error 10 ('server error')?

  1. Получить массив из Memcached
  2. Выполнения операций по первому элементу в массиве массива
  3. Обновления на основе результата операций
  4. Набор массив в Memcached

массива содержит URL-адрес в виде строк.

Операция memcached не работает для больших размеров массива. Совсем недавно это не удалось для массива, содержащего 78175 URL-адресов.

Ошибки я получаю от Memcached несколько родовой:

Result code: 10 
Result message: SERVER ERROR 

libmemcached documentation имеет мало полезностей для этой конкретной ошибки.

кода я использую довольно прост:

public function save() { 
    $this->memcached->set($this->key, $this->items);  
}  

protected function load() { 
    $this->items = $this->memcached->get($this->key);   
    if (!$this->items) { 
     $this->items = array(); 
    } 
} 


libmemcached имеет справок о небольшой немедленной помощи для этой ошибки и сама ошибка понятно расплывчатая.

Каковы могут быть причины для memcached error 10?

ответ

-2
Error is Memcached::OPT_BUFFER_WRITES - 10 

$this->_Memcache =& new Memcached(); 
$this->_Memcache->setOption(Memcached::OPT_SERIALIZER, Memcached::SERIALIZER_PHP); 
$this->_Memcache->setOption(Memcached::OPT_NO_BLOCK, true); 
$this->_Memcache->setOption(Memcached::OPT_TCP_NODELAY, true); 
$this->_Memcache->setOption(Memcached::OPT_BUFFER_WRITES, true); 
$this->_Memcache->setOption(Memcached::OPT_SERVER_FAILURE_LIMIT,3); 
$this->_Memcache->setOption(Memcached::OPT_HASH,Memcached::HASH_CRC); 
+0

Не могли бы вы вникать в детали? Я не совсем понимаю, как это отвечает на вопрос. –

+0

Этот ответ ничего нам не говорит без знания PHP и Memcached. –

4

В моем случае я считаю, что это произошло потому, что данные превысили глобальный максимум для объекта memcache (1 МБ).

+0

Хороший звонок. Я просто передаю исключения на. Теперь, это должно быть безопасно. – Druska