c - hiredis 命令对简单 C 代码的空回复

标签 c redis hiredis

我在 Kali Linux 2019.4 上使用以下命令安装了 Redis 服务器:

$ redisurl="http://download.redis.io/redis-stable.tar.gz"
$ curl -s -o redis-stable.tar.gz $redisurl
$ sudo su root
$ mkdir -p /usr/local/lib/
$ chmod a+w /usr/local/lib/
$ tar -C /usr/local/lib/ -xzf redis-stable.tar.gz
$ rm redis-stable.tar.gz
$ cd /usr/local/lib/redis-stable/
$ make && make install

然后在redis-cli上,当我输入PING时,它会回复PONG

但是当我使用下面的 C 代码和 hiredis 时,它会回复 null

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#include <hiredis/hiredis.h>

redisContext *c;
redisReply *reply;
void main() {

    c = redisConnect("127.0.0.1", 6379);
    reply = redisCommand(c,"PING");
    printf("PING: %s \n", reply->str);

} 

输出:PING:(空)

有人可以帮我吗?

最佳答案

首先,您是否在正确的端口上将 Redis 作为后台服务运行?

我认为如果你想从新事物开始,最好从那些已经测试过的例子开始。而且,如果您再次遇到错误,可能您的 Redis Upstart 还没有真正完成。

请仔细查看以下链接并多加注意这些示例:

https://github.com/redis/hiredis

https://github.com/redis/hiredis/tree/master/examples

希望对您有所帮助。

关于c - hiredis 命令对简单 C 代码的空回复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59254106/

相关文章:

c - 使用 .init_array 部分的段错误

c - 如何检查 LsaLogonUser session ,或者在 wine 下创建一个 session

c - fork() 如何知道何时返回 0?

c - 这两个声明之间有什么区别吗?

centos - 无法在 Centos 6.8 上安装 Flexisip(Linphone SIP 服务器)

c - hiredis 异步连接密码

transactions - 雷迪斯 : SMEMBERS returns 0 after an SMOVE in a MULTI

database - Redis,redis fatal error 无法打开配置文件

redis - 我们可以通过redis-sentinel将slave标记为不可升级吗?

c - 加载共享库时出错,无法打开共享对象文件 : No such file or directory (hiredis)