LIBMEMCACHED :服务器已失败并禁用,直到定时重试
libmemcached : SERVER HAS FAILED AND DISABLED UNTIL TIMED RETRY
我正在使用libmemcached C API与memcached进行交互。偶尔memcached_set会因SERVER HAS FAILED AND DISABLED UNTIL TIMED RETRY
而失败。处理此问题的一般方法是什么。
此错误仅发生在生产服务器上,在开发环境中不可产生。
- 内存缓存版本 : 1.4.7
- libmemcahced 版本:1.0.2
- Linux RHEL6 OS
- 海湾合作委员会 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: %sn",memcached_strerror(memc, rc));
}
}
我注意到memcached_server_list_append
在创建 memcached 连接后没有在代码中的任何地方使用,这会导致问题吗?
服务器可能过载。检查顶部的内存缓存的加载。
在设置有效值时检查键名称。
尝试设置 Memcached::OPT_BINARY_PROTOCOL,以启用二进制数据。
相关文章:
- 如何将stdout重定向到stderr
- Ardunio UNO解决了多个重叠的定时器循环
- QTableView:endMoveRows在模型中重置水平页眉大小
- Visual studio代码重构似乎不起作用(例如,重命名符号-f2)
- 编写时C++中的输入重定向问题
- 如何避免在仅标头库中C++类/变量重定义
- C libcurl错误重试
- 为什么当循环再次运行时,此输出"请重试"?
- 网络tcp套接字应用程序重试方法
- 正在重试包含同一异常的exception_ptr的多个实例
- 未收到确认时如何执行数据包重试
- 出现异常后重试本地静态变量初始化
- LIBMEMCACHED :服务器已失败并禁用,直到定时重试
- Android 冻结在 OpenGL|ES 中(CPU 可能被固定,重试)
- 从catch块中的函数重试
- 在Poco 1.5.x中使用锁定的SQLite数据库重试
- CURL请求失败重试方法
- "相机正在使用中。关闭使用它的所有应用程序,然后重试。在黑莓 Z10 中调用黑莓 10 级联中的相机时
- 在c++中唤醒boost::sleep定时器并将其重置为0
- 正在重试异常