1.c_str
c_str()返回的是一个临时指针
用法:
string redis_cmd = "GET " + redis_key; result = _rd_client.exec_command(redis_cmd.c_str()); //exec_command定义 redisReply* redis_client::exec_command(const char *cmd) { return exec_command_with_args(cmd); }
2.多次请求redis操作
const int TIME_WAIT = 100000; //100 ms string redis_cmd = "GET " + redis_key; UB_LOG_TRACE("read output redis command: %s", redis_cmd.c_str()); for (unsigned int i = 1; i <= pay_define::MAX_RETRY_TIMES; i++) { try { redisReply* result = NULL; result = _rd_client.exec_command(redis_cmd.c_str()); if (!result) { UB_LOG_WARNING("get output from redis result is null"); usleep(TIME_WAIT); continue; } if (result->type != REDIS_REPLY_STRING) { if (result->type == REDIS_REPLY_ERROR) { UB_LOG_WARNING("get output from redis result error"); } else if (result->type == REDIS_REPLY_NIL) { UB_LOG_WARNING("get output from redis result is empty"); } freeReplyObject(result); usleep(TIME_WAIT); continue; } //copy redis value to out_pack mc_pack_t * pOutput = const_cast<yapserver::mc_pack_writer&>(out_pack); memcpy((void*)pOutput, result->str, result->len);
3.
原文:https://www.cnblogs.com/liuweiweitju/p/14473591.html