2012-04-26 87 views
2

使用PHP,我堅持在memcached的數組爲以下過程的一部分:是什麼導致memcached錯誤10('服務器錯誤')?

  1. 從memcached的
  2. 基於操作的結果
  3. 更新陣列陣列上執行第一項操作獲取數組
  4. 組陣列在分佈式緩存

該數組包含的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錯誤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

你可以進一步瞭解更多細節嗎?我不太明白這是如何回答這個問題的。 – 2012-04-26 20:47:08

+0

這個答案沒有告訴我們任何沒有PHP和Memcached知識的東西。 – 2013-10-17 23:07:52

4

在我的情況,我認爲這是因爲數據超過了全局最大的memcache對象(1MB)。

+0

好的電話。我只是在.set上傳遞異常,它應該是安全的。 – Druska 2013-05-10 04:23:44

相關問題