一尘不染

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

redis

我的思维模型是“聊天”的模型,我订阅了某个频道,然后可以向该频道发布消息。


阅读 307

收藏
2020-06-20

共1个答案

一尘不染

由于pub / sub是异步的,因此已发布的消息可能会在任何时间出现,包括您期望命令响应的时间。

尽管redis是单线程的,通常可以防止这种情况,但是网络延迟可能会引起一些有趣的效果-根据消息的内容,您可以在服务器实际收到命令之前收到对命令的有效响应。

就是说,如果您确实想使用-
可能应该使用单个连接-“应该”与“不能”不相同,并且redis遵循一种简单的设计理念,即不试图阻止您用脚射击。但是,仅打开与服务器的两个连接要容易得多。如果您达到每个客户端两个连接的连接限制,那么您可能很快就会遇到每个客户端一个连接的问题。

2020-06-20