【发布时间】:2013-08-09 01:14:12
【问题描述】:
我有一堆长时间运行的进程连接到 Redis 服务器(使用 Jedis)。只要我不重新启动运行 Redis 的机器或重新启动 Redis 服务器,一切正常。一旦我重新启动或重新启动,连接就会丢失。在 Redis/Jedis 中是否有处理这个用例的标准方法,还是我需要自己把这个逻辑放在我所有的客户中?
【问题讨论】:
标签: redis fault-tolerance jedis
我有一堆长时间运行的进程连接到 Redis 服务器(使用 Jedis)。只要我不重新启动运行 Redis 的机器或重新启动 Redis 服务器,一切正常。一旦我重新启动或重新启动,连接就会丢失。在 Redis/Jedis 中是否有处理这个用例的标准方法,还是我需要自己把这个逻辑放在我所有的客户中?
【问题讨论】:
标签: redis fault-tolerance jedis
Redis 失败/连接断开
在这种情况下,当您的进程保持活动状态时,redis 会关闭或断开连接。为确保进程获得良好的连接,请在 jedis 连接/池配置中使用 testOnBorrow=true。 Jedis 会在使用前用‘PING’测试每个连接;如果redis没有响应,连接被丢弃,它会尝试另一个连接。
机器重启/重启(不是 redis)
如果应用程序节点失败或重新启动,您的“进程”应该配置为在重新启动时自动重新启动(如果这是您想要的行为),或者有人手动启动它。在任何一种情况下,我都希望您的进程在它执行任何实际工作之前创建和初始化一个新的绝地连接......那么除此之外您还需要什么?
【讨论】:
testOnBorrow=true,其余设置默认。