使用PHP,我在memcached中持久化一个数组,作为以下过程的一部分:
数组包含URL作为字符串。
对于大型数组,memcached set操作失败。最近,对于包含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的原因是什么?
答案 0 :(得分:4)
就我而言,我认为这是因为数据超过了memcache对象的全局最大值(1MB)。
答案 1 :(得分:-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);