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

Redis超时与predis

公良玺
2023-03-14
问题内容

我正在将redis与php一起使用(http://github.com/nrk/predis/上的
predis ),并且经常遇到超时问题。堆栈跟踪显示:

[04-Apr-2010 03:39:50] PHP Fatal error:  Uncaught exception 'Predis_ClientException' with message 'Connection timed out' in redis.php:697
Stack trace:
#0 redis.php(757): Predis_Connection->connect()
#1 redis.php(729): Predis_Connection->getSocket()
#2 redis.php(825): Predis_Connection->writeCommand(Object(Predis_Commands_ListRange))
#3 redis.php(165): Predis_ConnectionCluster->writeCommand(Object(Predis_Commands_ListRange))
#4 redis.php(173): Predis_Client->executeCommandInternal(Object(Predis_ConnectionCluster), Object(Predis_Commands_ListRange))
#5 redis.php(157): Predis_Client->executeCommand(Object(Predis_Commands_ListRange))
#6 [internal function]: Predis_Client->__call('lrange', Array)

这种情况一直发生,我不知道为什么。有人知道吗?


问题答案:

我认为这是因为Redis默认情况下会关闭空闲连接。

redis.conf

# Close the connection after a client is idle for N seconds (0 to disable)
timeout 0


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

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

  • 问题内容: 我需要从Redis库中挽救一个提出的问题,但是我遇到了一个问题,抢救该特定类似乎不起作用。 当我尝试营救时仍然无法正常工作 如果我尝试手动引发该异常,则可以对其进行挽救,但不知道为什么从Redis Gem(2.2.0)中调用该异常时为何无法对其进行挽救。 任何线索如何挽救这个异常? 问题答案: 您在irb中运行了此代码,对吗?您收到的异常实际上不是由引发的。它是由方法引发的,irb调用

  • 我对Redis和AWS弹性缓存服务完全陌生。我创建了一个Redis集群(5.0.6 v),其中包含1个碎片,2个节点,没有加密传输,没有静态加密,没有Redis Auth和多AZ禁用。 我可以看到主endpoint,阅读器endpoint和单击集群,可以看到两个节点endpoint不同于主endpoint和阅读器endpoint。 我正在使用带有普通maven项目的莴苣进行连接,但连接超时。我尝试

  • Redis Sentinel手动故障转移命令超时 [8]01 7月01:36:57.317#哨兵runid为c337f6f0dfa1d41357338591cd0181c07cb026d0 [8]01 7月01:38:13.135#+监视器主redis-holt-overflow 10.19.8.2 6380法定人数1 [8]01 7月01:38:13.135#+设置主redis-holt-ove

  • 我是redis的新用户,我启动了服务器,了解这个教程。这很有效。然后我用java编写连接redis的代码,这样就可以了: 但是,当我使用多线程推送redis时,它会抛出异常“读取超时”: 线程“main”java中出现异常。朗,反思一下。对太阳的攻击。反映NativeMethodAccessorImpl。在sun上调用0(本机方法)。反映NativeMethodAccessorImpl。在sun上