我一直在使用memcached v1.6和它的默认引擎,这是我一直面临的问题。
有时当我尝试从缓存中获取值时,当我尝试设置一个值时,会收到以下错误消息。
HOSTNAME LOOKUP FAILURE
很奇怪它不会每次都发生,我已经尝试设置并从缓存中获取值并且它有效,但有时它没有,并且出现“HOSTNAME LOOKUP FAILURE”。
我想在缓存中设置的是包含文件属性的经典struct stat
,我这样做。
rc = memcached_set(memc,key,key_length,value,value_length,(time_t) 0,(uint32_t) 0);
其中,当我调试时,键是"0/.Trash"
,值是结构化为(char *)的结构
关于为什么会发生这种情况的任何想法?或者这个错误意味着什么,所以我可以自己做出结论?
请注意,当我从缓存中获取值时,有时也会发生这种情况,而不仅仅是在我设置它们时。
非常感谢您的帮助!
此致
编辑:
这就是我连接缓存的方式
memcached_server_st *servers = NULL;
memcached_return rc;
char* ip = configuracion_direccionServidorRC(); // this is a dictionary where i get the ip from, which now for testing, it is "127.0.0.1"
uint16_t port = (uint16_t) configuracion_puertoServidorRC(); // this is a dictionary where i get the port from, which now for testing, is "11211"
servers = memcached_servers_parse(ip);
memc = memcached_create(NULL);
servers = memcached_server_list_append(servers, "Server1", port, &rc);
rc = memcached_server_push(memc, servers);
free(servers);
if (rc == MEMCACHED_SUCCESS)
logger_info("connected!");
else {
char c_log_mensaje[100];
sprintf(c_log_mensaje, "couldn't conect!: %s",
memcached_strerror(memc, rc));
}