有没有一种简单的方法来检查给定memcached_st*
的是否已成功连接到 memcached 服务器?
我正在通过 连接,当我给它提供虚假主机名时memcached_server_add_with_weight
它会返回。MEMCACHED_SUCCESS
同样,memcached_last_error_errno
在调用 to 后立即调用memcached_server_add_with_weight
给我MEMCACHED_SUCCESS
。
有没有一种简单的方法来检查给定memcached_st*
的是否已成功连接到 memcached 服务器?
我正在通过 连接,当我给它提供虚假主机名时memcached_server_add_with_weight
它会返回。MEMCACHED_SUCCESS
同样,memcached_last_error_errno
在调用 to 后立即调用memcached_server_add_with_weight
给我MEMCACHED_SUCCESS
。
一种有趣的方法是检查实际的套接字描述符。如果 libmemcached 成功连接到服务器,则套接字描述符为正,否则为 -1。
std::shared_ptr<memcached_st> es (memcached_create (NULL), [](memcached_st* msp) {memcached_free (msp);});
memcached_server_add_with_weight (es.get(), "server1", 9201, 100);
memcached_server_add (es.get(), "server2", 9201);
memcached_server_add (es.get(), "server3", 9201);
memcached_server_fn serverVisitor = [](const memcached_st *ptr, memcached_server_instance_st server, void *context) {
if (server->fd < 0) throw std::runtime_error (std::string ("libmemcached connection to ") + server->hostname + " failed!");
return MEMCACHED_SUCCESS;
};
memcached_server_cursor (es.get(), &serverVisitor, NULL, 1);