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

连接时Redis客户端超时

惠翰藻
2023-03-14
问题内容

我在ElastiCache上运行Redis集群。

多个进程连接到Redis集群。每个进程都位于Docker容器中。流程不尽相同-我有一个web流程,一个worker流程等。

正常运行几天后,web连接到Redis时,我的某些进程开始超时。当我ssh进入受影响的web容器并尝试通过到达群集时redis- cli,与群集的连接超时。这告诉我,问题不仅影响web过程,而且影响整个容器。

当我redis-cli从任何其他容器中使用时,连接都不会出现问题。

我的web进程会根据需要创建新的连接,并在长时间闲置时关闭旧的连接。我的猜测是,在达到某种限制之前,任何给定的Docker容器都可以打开一定数量的连接。几天后,我的web容器达到了极限。

任何想法如何解决这个问题?

--

更详细一点:出于某种原因,重置我的Redis群集可解决所有web容器中的问题。也许Redis服务器对从给定IP地址可以打开多少个连接施加了限制?


问题答案:

我和Josiah 就Redis Google小组进行了长时间的讨论,这有助于解决我的问题;希望讨论可以在将来对其他人有所帮助。



 类似资料:
  • 我们已经定义了Lettuce客户端连接工厂,以便能够连接到定义自定义套接字和命令超时的Redis: 莴苣文档定义默认值: 默认套接字超时为10秒 默认命令超时为60秒 如果Redis服务中断,应用程序必须在300ms内接收超时。哪个值必须定义为最大值? Github示例项目:https://github.com/cristianprofile/spring-data-redis-lettuce

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

  • 当我尝试使用套接字将物理设备连接到服务器时,我遇到了一个问题。在服务器端,它似乎不接受任何连接,而在客户端,套接字超时。你知道为什么会这样吗? 我在下面提供我的代码 服务器代码: 客户端: 11-16 23:32:11.016:W/系统。错误(24213):java.net。ConnectException:无法连接到/192.168.1.116(端口9090):连接失败:ETIMEDOUT(连接

  • null 当MQTT代理变得不可用时,Paho MQTT客户机不能帮助我保证这些QoS2级别的消息将被重新传递,这是正确的说法吗? 因此,我如何区分以下情况,即Client.Publish导致了一个MqttException,其中Paho没有将消息持久化。 下面是它在飞行中坚持的地方 null 连接丢失(32109):PAHO保存消息 客户端当前正在断开连接(32102):PAHO丢失消息 等待服

  • 问题内容: 有没有一种方法可以使用客户端(而不是Node.js)JavaScript直接连接到Redis? 我已经为一些项目成功使用了Node.js + PHP + Redis + Socket.io(用于客户端)。但是,我确实认为这可以进一步简化为类似PHP + Redis + Browser javascript的东西- 取出Node.js服务器,这是我不愿意使用的另一台服务器。对于简单的事情

  • 问题内容: 我最近开始在新的Azure VM上托管我的一个副项目。该应用程序将Redis用作内存缓存。在本地环境中一切正常,但是现在我已将代码移至Azure,我发现Bookleeve中出现了一些奇怪的异常。 当应用首次启动时,一切正常。但是,在闲置约5-10分钟后,对应用程序的下一个请求遇到了网络异常(我现在正在工作,并且没有确切的错误消息,因此我回到家时会张贴这些消息,如果人们认为他们与讨论密切