C - hiredis 异步连接与密码



我正在使用hiredis C库连接到我的redis实例。我正在考虑更改我的 redis.conf 以启用requirepass选项。我知道redisConnect()我只需连接到主机/端口而无需身份验证,然后使用redisCommand()和上下文发送AUTH mypassword命令。但是,如何为redisAsyncConnect()做到这一点?查看源代码,当要求发送AUTH mypassword命令时,redisAsyncCommand()函数将失败。

我对函数操作的分析不正确redisAsyncConnect()。以下代码有效,唯一的警告是你不知道AUTH命令是否成功:

redisAsyncContext *async_context = redisAsyncConnect(redis_info.host, redis_info.port);
if (async_context->err)
{
throw std::runtime_error("Error creating async_context: " + async_context->errstr);
}
if (0 != strlen(redis_info.passwd))
{
if (REDIS_OK != redisAsyncCommand(async_context, NULL, NULL, "AUTH %s", redis_info.passwd))
{   
throw std::runtime_error("Error sending AUTH in async_context");
}   
}

最新更新