Я пытаюсь rpush в многословной строку в Redis ключа Но everyword становится добавлен новый элемент Как я могу избежать этогоrpush Multiword строка с пробелами в Redis с помощью hiredis
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <hiredis.h>
int main(int argc, char **argv) {
redisContext *c;
redisReply *reply;
int j;
struct timeval timeout = { 1, 500000 }; // 1.5 seconds
c = redisConnectWithTimeout("192.168.77.101",6379, timeout);
reply = redisCommand(c,"DEL mylist");
freeReplyObject(reply);
reply = redisCommand(c,"RPUSH mylist element 0"); freeReplyObject(reply);
reply = redisCommand(c,"RPUSH mylist element 1"); freeReplyObject(reply);
reply = redisCommand(c,"RPUSH mylist element 2"); freeReplyObject(reply);
reply = redisCommand(c,"LRANGE mylist 0 -1");
if (reply->type == REDIS_REPLY_ARRAY) {
for (j = 0; j < reply->elements; j++) {
printf("%u) %s\n", j, reply->element[j]->str);
}
}
freeReplyObject(reply);
redisFree(c);
return 0;
}
I ожидайте, что ответ будет 3 значения, но я получу 6 значений
ответ = redisCommand (c, "RPUSH mylist% s", "element 2"); Работает нормально Как поймать ошибку этой команды reply-> str всегда имеет значение null – Ram
См. Https://github.com/redis/hiredis#using-replies - проверьте хотя бы ответ не NULL, и answer-> type! = REDIS_REPLY_ERROR - в случае ошибки вы можете получить больше информации в c-> err и c-> errstr –