- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在使用 hiredis C client library在异步上下文中与 Redis 交互。
在我的工作流程的某些点上,我必须对 Redis 进行同步调用,但我无法从 Redis 获得成功响应。
我不确定我是否可以从异步上下文向 Redis 发出同步命令但是...
我有这样的东西
redisAsyncContext * redis_ctx;
redisReply * reply;
// ...
reply = redisCommand(&(redis_ctx->c), COMMAND);
redisCommand
调用后,我的 reply
is NULL what is documented as an error condition我的 redis_ctx->c
就像
err = 0
errstr = '\000' <repeats 127 times>
fd = 11
flags = 2
obuf = "*5\r\n$4\r\nEVAL\r\n$215\r\n\"math.randomseed(tonumber(ARGV[1])) local keys = redis.call('hkeys',KEYS[1]) if #keys == 0 then return nil end local key = keys[math.random(#keys)] local value = redis.call('hget', KEYS[1], key) return {key, value}\"\r\n$1\r\n1\r\n$0\r\n\r\n$1\r\n1\r\n"
reader = 0x943730
我不知道命令是否发出。
最佳答案
希望还不算太晚。我不是 Redis 专家,但如果您需要对 Redis 进行同步调用,为什么要使用 AsyncContext?
如果您只是将 redisCommand 与 redisContext 一起使用,一切都应该没问题。
假设变量 ctx
已被声明为
redisContext *ctx;
您可以像这样使用 redisCommand
:
reply = (redisReply *)redisCommand(ctx, "HGET %s %s", hash, key);
关于asynchronous - hiredis 从异步上下文运行同步命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27510107/
我正在开发一个简单的应用程序,它使用 Redis 的官方 C 客户端hiredis 的异步方面。作为第一步,我尝试编译the github repo 中的示例程序。 .我正在使用在 Ubuntu 20
我正在使用hiredis C library连接到我的 redis 实例。我正在考虑更改我的 redis.conf 以启用 requirepass 选项。我知道对于 redisConnect() 我只
我正在尝试使用 hiredis 编写连接池。我面临的问题是,如果用户触发命令但没有从连接读取响应,我应该在放入连接池之前清除该连接的响应。 有没有办法检查: 是否有更多数据要读取?所以我可以做 red
我正在使用 hiredis C client library在异步上下文中与 Redis 交互。 在我的工作流程的某些点上,我必须对 Redis 进行同步调用,但我无法从 Redis 获得成功响应。
我正在尝试在断开连接时重新连接到 Redis 服务器。 我正在使用 redisAsyncConnect 并且我已经设置了断开连接时的回调。在回调中,我尝试使用在程序开始时使用的相同命令重新连接以建立连
我正在使用 hiredis C 库连接到 redis 服务器。我不知道如何在订阅新消息后等待新消息。 我的代码如下: signal(SIGPIPE, SIG_IGN ); struct event
我正在为 Varnish 使用一个名为 libvmod-redis 的 redis 集成插件.我遇到一个问题,如果我收到大量并发请求(大约 350 个),redis 就会开始超时,最终我会在 Varn
我是 redis 新手。我想编写一个位于hiredis顶层的简单库(用于测试)。例如,为了实现 SET 命令,我编写了以下代码: #include #include #include #include
我正在尝试使用 hiredis 将结构SET 放入 Redis: struct StatLite { uid_t uid; gid_t gid; mode_t mode; }
我正在尝试在 CentOS 上以 C 运行 hiredis。 下面的代码似乎运行良好: ... const char *hostname = "my.redis-as-a-service.com";
我将 HiRedis 与 c/c++ 程序一起使用,并编写了一些测试来验证订阅是否有效(我的解决方案基于 this comment)。 但是,目前我只能通过在 redis-cli 终端中手动输入类似
reply = redisCommand(rcontext,"HGET %u %u",env->cr[3] ,KeyHandle); if(reply == NULL) { printf("in pr
如何使用 hiredis API 断开与 redis 服务器的连接?有 API 可以连接,但我找不到关闭连接的函数?redisFree 会自动执行此操作吗? 最佳答案 redisFree() 确实会关
我在多线程环境中使用 Redis,对它的运行方式有疑问。我在我的 c++ 应用程序中使用 hiredis c 库。 我的问题是:如果我在触发回调时使用异步模式,是否会在 Redis 客户端创建的另一个
我在 Kali Linux 2019.4 上使用以下命令安装了 Redis 服务器: $ redisurl="http://download.redis.io/redis-stable.tar.gz"
我想用 C 编译 redis 的客户端。我已经下载并安装了 libevent 库和 hiredis 文件。我用过这个命令: gcc -I/home/tasos/Dropbox/lists/hiredi
考虑以下示例: #include #include #include #include int main(int argc, char **argv) { redisContext *re
我有以下在 C 中使用 Redis 的代码。以 hiredis 为基础。 #include #include #include #include int main(int argc, char
我安装了redis服务器,可以从命令行使用它。现在,我想使用 hiredis 编写一个客户端程序。首先,我尝试编译 hiredis 目录中的 example.c: vishal@expmach:~/r
我正在尝试将一个多词字符串推送到一个 Redis 键但是每个词都被添加为一个新元素我怎样才能避免这种情况 #include #include #include #include int m
我是一名优秀的程序员,十分优秀!