mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-01-31 11:37:35 +00:00
56 lines
1.9 KiB
C
56 lines
1.9 KiB
C
|
#if 0
|
||
|
/*─────────────────────────────────────────────────────────────────╗
|
||
|
│ To the extent possible under law, Justine Tunney has waived │
|
||
|
│ all copyright and related or neighboring rights to this file, │
|
||
|
│ as it is written in the following disclaimers: │
|
||
|
│ • http://unlicense.org/ │
|
||
|
│ • http://creativecommons.org/publicdomain/zero/1.0/ │
|
||
|
╚─────────────────────────────────────────────────────────────────*/
|
||
|
#endif
|
||
|
#include "libc/runtime/runtime.h"
|
||
|
#include "libc/fmt/conv.h"
|
||
|
#include "libc/fmt/fmt.h"
|
||
|
#include "libc/stdio/stdio.h"
|
||
|
#include "libc/str/str.h"
|
||
|
#include "third_party/hiredis/hiredis.h"
|
||
|
|
||
|
/**
|
||
|
* @fileoverview Demo of using hiredis to connect to a Redis server
|
||
|
*/
|
||
|
|
||
|
int main(int argc, char *argv[]) {
|
||
|
if (argc < 3 || argc > 5) {
|
||
|
fprintf(stderr, "Usage: %s HOST PORT [KEY] [VALUE]\n", argv[0]);
|
||
|
exit(1);
|
||
|
}
|
||
|
|
||
|
bool setValue = (argc == 5), getValue = (argc == 4);
|
||
|
|
||
|
redisContext *c = redisConnect(argv[1], atoi(argv[2]));
|
||
|
if (c == NULL || c->err) {
|
||
|
if (c) {
|
||
|
fprintf(stderr, "Connection error: %s\n", c->errstr);
|
||
|
redisFree(c);
|
||
|
} else {
|
||
|
fputs("Failed to allocate redis context\n", stderr);
|
||
|
}
|
||
|
exit(1);
|
||
|
}
|
||
|
|
||
|
redisReply *reply;
|
||
|
if (!setValue && !getValue) {
|
||
|
reply = redisCommand(c, "PING");
|
||
|
printf("PING: %s\n", reply->str);
|
||
|
} else if (setValue) {
|
||
|
reply = redisCommand(c, "SET %s %s", argv[3], argv[4]);
|
||
|
printf("SET: %s\n", reply->str);
|
||
|
} else {
|
||
|
reply = redisCommand(c, "GET %s", argv[3]);
|
||
|
printf("GET: %s\n", reply->str);
|
||
|
}
|
||
|
|
||
|
freeReplyObject(reply);
|
||
|
redisFree(c);
|
||
|
return 0;
|
||
|
}
|