hiredis常用API的使用
redisConnect
redisContext* redisConnect(const char *ip, int port);
说明:该函数用来连接redis数据库,参数为数据库的ip地址和端口,一般redis数据库的端口为6379。
redisContext *c = redisConnect("127.0.0.1", 6379);
redisCommand
void *redisCommand(redisContext *c, const char format, …);
说明:该函数执行redis数据库中的操作命令,第一个参数为连接数据库时返回的redisContext,剩下的参数为变参,就如C标准函数printf函数一样的变参。
返回值为void,一般强制转换成为redisReply类型,以便做进行进一步的处理。
redisReply * reply = (redisReply *)redisCommand(c, "set k1 v1");
测试代码
#include <stdio.h>
#include <hiredis/hiredis.h>
int main()
{
redisContext *c = redisConnect("127.0.0.1", 6379);
if (c == NULL || c->err)
{
if (c)
{
printf("Error: %s\n",c->errstr);
//handle error
}
else
{
printf("Can't allocate redis context\n");
}
return 0;
}
redisReply * reply = (redisReply *)redisCommand(c, "set k1 v1");
printf("set k1 v1\n%s\n",reply->str);
freeReplyObject(reply);
reply = (redisReply *)redisCommand(c, "get k1");
printf("get k1\n%s\n",reply->str);
freeReplyObject(reply);
reply = (redisReply *)redisCommand(c, "set k1 v11");
printf("set k1 v11\n%s\n",reply->str);
freeReplyObject(reply);
reply = (redisReply *)redisCommand(c, "get k1");
printf("get k1\n%s\n",reply->str);
freeReplyObject(reply);
reply = (redisReply *)redisCommand(c, "del k1");
printf("get k1\n%s\n",reply->str);
freeReplyObject(reply);
redisFree(c);
return 0;
}