首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >删除睡眠后,Redis管道无法工作。

删除睡眠后,Redis管道无法工作。
EN

Stack Overflow用户
提问于 2019-09-16 18:31:58
回答 1查看 113关注 0票数 0

我正在阅读关于redis管道的文章,在这里我看到了基本的例子。

下面的命令正在按预期工作。

代码语言:javascript
复制
(printf "PING\r\nPING\r\nPING\r\n"; sleep 1) | nc localhost 6379

输出:

代码语言:javascript
复制
+PONG
+PONG
+PONG

但是当我移除睡眠时,命令并没有给我任何结果。

代码语言:javascript
复制
(printf "PING\r\nPING\r\nPING\r\n";) | nc localhost 6379

我不能理解这里的行为。

任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-09-17 03:40:02

当管道(|)之前的命令(例如(printf "PING\r\nPING\r\nPING\r\n";) )完成时,它将向nc命令发送EOFnc将关闭到Redis的连接并退出。然而,在nc退出之前,它可能还没有收到Redis的响应。

为了确保nc接收来自Redis的响应并输出响应,在printf请求之后,它会休眠一段时间,例如sleep 1。通常,nc可以在1秒中接收来自Redis的响应。这样你就能看到输出。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57962581

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档