C++通过hiredis库连接带密码的redis数据库


正常连接服务后加上auth命令传入密码:

redisContext *c = redisConnect((char *)redis_host, redis_port);
if (c->err)
{ /* Error flags, 0 when there is no error */
    printf("连接Redis失败: %s\n", c->errstr);
    exit(1);
}
else
{
    printf("连接Redis成功!\n");
}

redisReply *reply = (redisReply *)redisCommand(c, "AUTH %s", redis_password);
if (reply->type == REDIS_REPLY_ERROR)
{
    printf("Redis认证失败!\n");
}
else
{
    printf("Redis认证成功!\n");
}
freeReplyObject(reply);

redisFree(c);

函数原型:redisContext *redisConnect(const char *ip, int port)
说明:该函数用来连接redis数据库,参数为数据库的ip地址和端口,一般redis数据库的端口为6379
该函数返回一个结构体redisContext。

函数原型:void *redisCommand(redisContext *c, const char format, ...);
说明:该函数执行命令,就如sql数据库中的SQL语句一样,只是执行的是redis数据库中的操作命令,第一个参数为连接数据库时返回的redisContext,剩下的参数为变参,就如C标准函数printf函数一样的变参。返回值为void
,一般强制转换成为redisReply类型的进行进一步的处理。

函数原型void freeReplyObject(void *reply);
说明:释放redisCommand执行后返回的redisReply所占用的内存

函数原型:void redisFree(redisContext *c);
说明:释放redisConnect()所产生的连接。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM