为什么我不能在同一连接中使用单个Redis客户端充当PUB和Sub?

Dra*_*nar 6 publish-subscribe nosql redis node.js

我的心理模型是"聊天",我订阅了某个频道,我可以向此频道发布消息.

Tom*_*son 9

由于pub/sub是异步的,因此发布的消息可以随时出现,包括您期望对命令的响应时.

虽然redis是单线程的,通常会阻止这类事情,但网络延迟可能会产生一些有趣的影响 - 根据消息的内容,您可以在服务器实际收到命令之前收到对命令的有效响应.

也就是说,你可以使用一个连接,如果你真的想 - "不应该"与"不能"不一样,而且redis遵循一个简单的设计理念,即不要试图阻止你在脚下射击.但是,打开与服务器的两个连接要容易得多.如果您通过每个客户端的两个连接达到连接限制,那么很可能很快就会遇到每个客户端一个连接的问题.