c++ - libmemcached : SERVER HAS FAILED AND DISABLED UNTIL TIMED RETRY

标签 c++ c memcached libmemcache

我正在使用 libmemcached C API 与 memcached 进行交互。偶尔memcached_set失败并显示 SERVER HAS FAILED AND DISABLED UNTIL TIMED RETRY。处理此问题的一般方法是什么。

此错误只出现在生产服务器上,在开发环境中不会产生。

  • 内存缓存版本:1.4.7
  • libmemcahced 版本:1.0.2
  • Linux RHEL6 操作系统
  • 海湾合作委员会 4.7.3

以下是伪代码片段,无法贴出全部代码。

bool set_keys(std::string const & query)
{
  // create a DB connection
  // execute query
  // consider result of query is as following
  std::vector<std::tuple<std::string,std::string>>result_set;
  memcached_return rc;
  for(auto const & item :  result_set )
  {
      rc= memcached_set(memc, std::get<0>(item).c_str(), std::get<0>(item).size(),  std::get<1>(item).c_str(),  std::get<1>(item).size(), (time_t)0, (uint32_t)0);

       if (rc != MEMCACHED_SUCCESS)
            fprintf(stderr,"Couldn't store key: %s\n",memcached_strerror(memc, rc));
   }
}

有一件事我注意到,在创建 memcached 连接后,代码中的任何地方都没有使用 memcached_server_list_append,这会导致问题吗?

最佳答案

可能是服务器重载了。通过top检查memcached的加载。

设置有效值时检查键名称。

尝试设置 Memcached::OPT_BINARY_PROTOCOL,以启用二进制数据。

关于c++ - libmemcached : SERVER HAS FAILED AND DISABLED UNTIL TIMED RETRY,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35290767/

相关文章:

c - 为什么不编译

c - 识别位图中设置的位并将其打印在字符串中

c - Aleph一号代码——缓冲区溢出

mysql - 什么更快 : Memcached or MySQL in memory table like HEAP?

c++ - 未为内部类推导出模板参数

c++ - SHDocVw::IShellWindowsPtr 在 IE8 下失败? (错误 0x80040154)

c++ - 链表节点类中的链接数

Node.js 页面缓存

memcached - Memcache 压缩 - 好/坏?

python - python venv如何管理C++依赖