#include <stdio.h>
#include <string.h>
#include "hiredis.h"
void TestRedisCommand(const char *cmd);
void TraverseResult(redisReply *reply);
void TestRedisCommand(const char *cmd)
{
redisContext* redis = redisConnect("127.0.0.1", 6379);
if(redis == NULL || redis->err) {
redisFree(redis);
printf("Fail to connect to redis server...\n");
return;
}
redisReply* reply = (redisReply *)redisCommand(redis, cmd);
if(reply == NULL) {
redisFree(redis);
printf("Fail to exec [%s]!\n", cmd);
return;
}
if(reply->type == REDIS_REPLY_ERROR) {
redisFree(redis);
printf("Fail to exec [%s]!\n", cmd);
printf("Error message = [%s]!\n", reply->str);
return;
}
TraverseResult(reply);
freeReplyObject(reply);
}
void TraverseResult(redisReply *reply)
{
if(reply->type == REDIS_REPLY_STATUS) {
printf("%s\n", reply->str);
}
else if(reply->type == REDIS_REPLY_STRING) {
printf("%s\n", reply->str);
}
else if(reply->type == REDIS_REPLY_INTEGER) {
printf("%lld\n", reply->integer);
}
else if(reply->type == REDIS_REPLY_ARRAY) {
for(int i = 0; i < reply->elements; i++) {
redisReply *ply = reply->element[i];
TraverseResult(ply);
}
}
}
int main(int argc, char **argv)
{
if(argc < 2 || strlen(argv[1]) <= 3) return -1;
TestRedisCommand(argv[1]);
return 0;
}
#include <string.h>
#include "hiredis.h"
void TestRedisCommand(const char *cmd);
void TraverseResult(redisReply *reply);
void TestRedisCommand(const char *cmd)
{
redisContext* redis = redisConnect("127.0.0.1", 6379);
if(redis == NULL || redis->err) {
redisFree(redis);
printf("Fail to connect to redis server...\n");
return;
}
redisReply* reply = (redisReply *)redisCommand(redis, cmd);
if(reply == NULL) {
redisFree(redis);
printf("Fail to exec [%s]!\n", cmd);
return;
}
if(reply->type == REDIS_REPLY_ERROR) {
redisFree(redis);
printf("Fail to exec [%s]!\n", cmd);
printf("Error message = [%s]!\n", reply->str);
return;
}
TraverseResult(reply);
freeReplyObject(reply);
}
void TraverseResult(redisReply *reply)
{
if(reply->type == REDIS_REPLY_STATUS) {
printf("%s\n", reply->str);
}
else if(reply->type == REDIS_REPLY_STRING) {
printf("%s\n", reply->str);
}
else if(reply->type == REDIS_REPLY_INTEGER) {
printf("%lld\n", reply->integer);
}
else if(reply->type == REDIS_REPLY_ARRAY) {
for(int i = 0; i < reply->elements; i++) {
redisReply *ply = reply->element[i];
TraverseResult(ply);
}
}
}
int main(int argc, char **argv)
{
if(argc < 2 || strlen(argv[1]) <= 3) return -1;
TestRedisCommand(argv[1]);
return 0;
}