当前位置: 首页 > 面试题库 >

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

郦楷
2023-03-14
问题内容

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


问题答案:

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

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

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



 类似资料:
  • 问题内容: 我正在尝试编写一个使用Redis的AWS Lambda函数。当我运行以下代码时: 我有这样的答案: 和日志看起来像: 恕我直言,这意味着调用了回调,但没有任何反应。 删除客户端的初始化后,我会看到正确的响应。 有任何想法吗? 问题答案: 从官方文档中: 调用回调时,Lambda函数仅在Node.js事件循环为空之后退出。 由于您正在调用回调,但是您的Lambda函数调用并未结束,因此看

  • 我制作了一个FTP客户端(被动),它无法连接到服务器。我使用的FTP服务器是Filezilla;我只是用它来测试。每次我运行java程序(FTP客户端)时,Filezilla都会断开连接,并在Eclipse中出现以下错误: 这是FTP客户端: 这是我连接的程序: 还尝试编写我的lan ip而不是

  • 问题内容: 我正在设计一个将Redis用作数据库的Web服务,并且我想了解使用Redis与StackService客户端连接的最佳实践。 关键是我一直在阅读有关Redis的文章,发现与服务器交互的最佳方法是使用单个并发连接。 问题是,尽管每当Web客户端向Web服务发出请求时,我都会使用 PooledRedisClientManager ,但我又获得了一个到Redis服务器的连接客户端(打开的连接

  • 问题内容: 我很好奇为什么要尝试将2个客户端连接到RedisDB而不是1个?每次我连接时,都会看到另外两个客户端连接到我的RedisDB。 问题答案: 因为redis要求交互式命令和发布/订阅的单独连接。如果您不使用pub / sub,则可以告诉选项以禁用命令,在这种情况下,我 认为 第二个连接未建立。

  • 问题内容: 我在ElastiCache上运行Redis集群。 多个进程连接到Redis集群。每个进程都位于Docker容器中。流程不尽相同-我有一个流程,一个流程等。 正常运行几天后,连接到Redis时,我的某些进程开始超时。当我进入受影响的容器并尝试通过到达群集时,与群集的连接超时。这告诉我,问题不仅影响过程,而且影响整个容器。 当我从任何其他容器中使用时,连接都不会出现问题。 我的进程会根据需

  • 问题内容: While 是一个空字符串,is 和is是。为什么是NaN? 我的问题是,为什么不为而为。 我的问题是为什么仅在客户端发生这种情况?在服务器端(Node.js)是。 总结 : 在客户端: 在Node.js中: 问题答案: 更新的注释:此问题已在Chrome 49中修复 。 非常有趣的问题!让我们深入。 根本原因 差异的根源在于Node.js如何评估这些语句与Chrome开发工具如何进行