hiredis
2022/2/8 2:12:25
本文主要是介绍hiredis,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
// 执行redis命令 void *redisCommand(redisContext *c, const char *format, ...); // redisCommand 函数实际的返回值类型 typedef struct redisReply { /* 命令执行结果的返回类型 */ int type; /* 存储执行结果返回为整数 */ long long integer; /* str变量的字符串值长度 */ size_t len; /* 存储命令执行结果返回是字符串, 或者错误信息 */ char *str; /* 返回结果是数组, 代表数据的大小 */ size_t elements; /* 存储执行结果返回是数组*/ struct redisReply **element; } redisReply; redisReply a[100]; REDIS_REPLY_STRING==1 返回值是字符串,字符串储存在redis->str当中,字符串长度为redi REDIS_REPLY_ARRAY== 2 返回值是数组,数组大小存在redis->elements里面,数组值存储在 redis->element[i]里面。数组里面存储的是指向redisReply的指针,数 组里面的返回值可以通过redis->element[i]->str来访问,数组的结果 里全是type==REDIS_REPLY_STRING的redisReply对象指针。 REDIS_REPLY_INTEGER == 3 返回整数long long,从integer字段获取值 REDIS_REPLY_NIL==4 返回值为空表示执行结果为空 REDIS_REPLY_STATUS ==5 返回命令执行的状态,比如set foo bar 返回的状态为OK,存储在str 当中 reply->str == "OK" 。 REDIS_REPLY_ERROR ==6 命令执行错误,错误信息存放在 reply->str当中。// 释放资源 void freeReplyObject(void *reply); void redisFree(redisContext *c);
#include <stdio.h>
#include <hiredis.h>
int main()
{
// 1. 连接redis服务器
redisContext* c = redisConnect("127.0.0.1", 6379);
if (c->err != 0)
{
return -1;
}
// 2. 执行redis命令
void *prt = redisCommand(c, "hmset user userName zhang3 passwd 123456 age 23 sex man");
redisReply* ply = (redisReply*)prt;
if(ply->type == 5)
{
// 状态输出
printf("状态: %s\n", ply->str);
}
freeReplyObject(ply);
// 3. 从数据库中读数据
prt = redisCommand(c, "hgetall user");
ply = (redisReply*)prt;
if(ply->type == 2)
{
// 遍历
for(int i=0; i<ply->elements; i+=2)
{
printf("key: %s, value: %s\n", ply->element[i]->str, ply->element[i+1]->str);
}
}
freeReplyObject(ply);
redisFree(c);
return 0;
}
这篇关于hiredis的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-27阿里云Redis学习入门指南
- 2024-12-27阿里云Redis入门详解:轻松搭建与管理
- 2024-12-27阿里云Redis学习:新手入门指南
- 2024-12-24Redis资料:新手入门快速指南
- 2024-12-24Redis资料:新手入门教程与实践指南
- 2024-12-24Redis资料:新手入门教程与实践指南
- 2024-12-07Redis高并发入门详解
- 2024-12-07Redis缓存入门:新手必读指南
- 2024-12-07Redis缓存入门:新手必读教程
- 2024-12-07Redis入门:新手必备的简单教程