ffa8666a64
When there is an I/O error, errno should be used to find out what is wrong. In other cases, errno cannot be used. So, use an explicit type in Hiredis to define the different error scenarios that can occur.
68 lines
1.8 KiB
C
68 lines
1.8 KiB
C
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include <string.h>
|
|
|
|
#include "hiredis.h"
|
|
|
|
int main(void) {
|
|
unsigned int j;
|
|
redisContext *c;
|
|
redisReply *reply;
|
|
|
|
c = redisConnect((char*)"127.0.0.1", 6379);
|
|
if (c->err) {
|
|
printf("Connection error: %s\n", c->errstr);
|
|
exit(1);
|
|
}
|
|
|
|
/* PING server */
|
|
reply = redisCommand(c,"PING");
|
|
printf("PONG: %s\n", reply->str);
|
|
freeReplyObject(reply);
|
|
|
|
/* Set a key */
|
|
reply = redisCommand(c,"SET %s %s", "foo", "hello world");
|
|
printf("SET: %s\n", reply->str);
|
|
freeReplyObject(reply);
|
|
|
|
/* Set a key using binary safe API */
|
|
reply = redisCommand(c,"SET %b %b", "bar", 3, "hello", 5);
|
|
printf("SET (binary API): %s\n", reply->str);
|
|
freeReplyObject(reply);
|
|
|
|
/* Try a GET and two INCR */
|
|
reply = redisCommand(c,"GET foo");
|
|
printf("GET foo: %s\n", reply->str);
|
|
freeReplyObject(reply);
|
|
|
|
reply = redisCommand(c,"INCR counter");
|
|
printf("INCR counter: %lld\n", reply->integer);
|
|
freeReplyObject(reply);
|
|
/* again ... */
|
|
reply = redisCommand(c,"INCR counter");
|
|
printf("INCR counter: %lld\n", reply->integer);
|
|
freeReplyObject(reply);
|
|
|
|
/* Create a list of numbers, from 0 to 9 */
|
|
reply = redisCommand(c,"DEL mylist");
|
|
freeReplyObject(reply);
|
|
for (j = 0; j < 10; j++) {
|
|
char buf[64];
|
|
|
|
snprintf(buf,64,"%d",j);
|
|
reply = redisCommand(c,"LPUSH mylist element-%s", buf);
|
|
freeReplyObject(reply);
|
|
}
|
|
|
|
/* Let's check what we have inside the list */
|
|
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);
|
|
|
|
return 0;
|
|
}
|