核心API说明:
1)
redisContext *redisConnect(const char *ip,int port);
功能:连接redis数据库
参数:
ip:ip地址
port:端口,一般redis数据库的端口为6379
返回值:
成功:连接句柄redisContext
失败:NULL
2)
void *redisCommand(redisContext *c,const char *format, ...);
功能:执行的是redis数据库中的操作命令
参数:
c:连接数据库时 返回的redisContext
剩下的参数:剩下的参数为变参, 就如C标准函数printf函数一样的变参
返回值:
成功:void*, 一般强制转换成为redisReply类 型的进行进一步的处理
失败:NULL
/* This is the reply object returned by redisCommand() */
typedef struct redisReply {
int type; /* REDIS_REPLY_* */
long long integer;/* The integer when type is REDIS_REPLY_INTEGER */
size_t len; /* Length of string */
char *str; /* Used for both REDIS_REPLY_ERROR and REDIS_REPLY_STRING */
size_t elements; /* number of elements, for REDIS_REPLY_ARRAY */
struct redisReply **element;/* elements vector for REDIS_REPLY_ARRAY */
} redisReply;
redisReply中type字段的状态标识:
状态标识 | 含义 |
REDIS_REPLY_STATUS | 表示状态,内容通过str字段查看,字符串长度是len字段 |
REDIS_REPLY_ERROR | 表示出错,查看出错信息,如上的str,len字段 |
REDIS_REPLY_INTEGER | 返回整数,从integer字段获取值 |
REDIS_REPLY_NIL | 没有数据返回 |
REDIS_REPLY_STRING | 返回字符串,查看str,len字段 |
REDIS_REPLY_ARRAY | 返回一个数组,查看elements的值(数组个数),通过 element[index] 的方式访问数组元素,每个数组元素是一个 redisReply对象的指针。 |
3)
void freeReplyObject(void *reply);
功能:释放redisCommand执行后返回的redisReply所占用的内存
参数:redisCommand执行后返回的redisReply
返回值:无
redisReply返回结果处理,错误类型可通过redisReply的errstr字段查看简短的描述:
状态标识 | 含义 |
REDIS_OK | 正常 |
REDIS_ERR_IO | IO读/写出现异常,通过errno查看原因 |
REDIS_ERR_EOF | 服务器关闭了链接,读结束 |
REDIS_ERR_PROTOCOL | 分析redis协议内容出错 |
EDIS_ERR_OTHER | 其他未知的错误 |
4)
void redisFree(redisContext *c);
功能:释放redisConnect()所产生的连接
参数:redisConnect()所产生的连接
返回值:无