libmemcached: СЕРВЕР ОТКЛЮЧЕН И ОТКЛЮЧЕН

Я использую libmemcached C API для взаимодействия с memcached. Время от времени memcached_set не удается с SERVER HAS FAILED AND DISABLED UNTIL TIMED RETRY, Какой может быть общий подход к решению этой проблемы.

Эта ошибка возникает только на производственных серверах и не может быть воспроизведена в среде разработки.

  • memcached версия: 1.4.7
  • libmemcahced версия: 1.0.2
  • ОС Linux RHEL6
  • GCC 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_server_list_append не используется нигде в коде после создания подключения memcached, это может вызвать проблемы?

1

Решение

Возможно сервер перегружен. Проверьте загрузку memcached сверху.

Проверьте имена ключей, когда установлены допустимые значения.

Попробуйте установить Memcached :: OPT_BINARY_PROTOCOL, чтобы включить двоичные данные.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]