2

使用 PHP,我在 memcached 中保留一个数组,作为以下过程的一部分:

  1. 从 memcached 中获取数组
  2. 对数组中的第一项执行操作
  3. 根据操作结果更新数组
  4. 在 memcached 中设置数组

该数组包含作为字符串的 URL。

对于大数组大小,memcached 集操作失败。最近,它因包含 78175 个 URL 的数组而失败。

我从 memcached 得到的错误有点笼统:

Result code: 10
Result message: SERVER ERROR

libmemcached 文档对于这个特定错误几乎没有用处。

我使用的代码非常简单:

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 的原因可能是什么?

4

2 回答 2

4

就我而言,我相信这是因为数据超过了内存缓存对象的全局最大值 (1MB)。

于 2012-05-21T00:20:21.823 回答
-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);
于 2012-04-26T12:12:20.320 回答