非同期コンテキストで Redis と対話するために、 hiredis C クライアント ライブラリを使用しています。
ワークフローのある時点で、Redis に Sync 呼び出しを行う必要がありますが、Redis から正常な応答を得ることができません。
非同期コンテキストからRedisに同期コマンドを発行できるかどうかはわかりませんが...
私はこのようなものを持っています
redisAsyncContext * redis_ctx;
redisReply * reply;
// ...
reply = redisCommand(&(redis_ctx->c), COMMAND);
redisCommand
呼び出しの後reply
、エラー状態として文書化されているものは NULL であり、myredis_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
コマンドが発行されたかどうかはわかりません。