I'm trying to check if I'm filling redis database using hiredis correctly.
Via redisCommand()
I send it HSET <key> <filed> <value>
first, then HGETALL <key>
, expecting to have command callback at reply->str
, but reply->str
remains inaccessible.
Here's the part of code where I try to check if the filling is right:
const char* redisHostname = "127.0.0.1";
int redisPort = 6379;
redisContext* redis = redisConnect(redisHostname, redisPort);
const char* argv[] = { "HSET", std::to_string(i).c_str(), "lat", lat.c_str(), "lon", lon.c_str()};
redisReply* reply;
reply = (redisReply*)redisCommandArgv(redis, 6, argv, NULL);
if (i % 10000 == 0) { //for check
std::cout << i << " " << lat << " " << lon << std::endl;
std::cout << reply << std::endl;
}
freeReplyObject(reply);
}
redisReply* reply = (redisReply*)redisCommand(redis, "HGETALL 0");
Printing the reply shows 0x7fffe6eb2be0
value, and reply->str
causes a segmentation error.
So in short my question is how do I check for the redis command callback in Hiredis?
PS: I know that hiredis is a C redis client, yet I don't think launching it with C++ gives unexpected errors.