我有一堆连接到 Redis 服务器(使用 Jedis)的长时间运行的进程。只要我不重启运行 Redis 的机器或重启 Redis 服务器,一切都正常。一旦我重新启动或重新启动,连接就会丢失。在 Redis/Jedis 中是否有处理此用例的标准方法,或者我是否需要自己将此逻辑放入我的所有客户中?
最佳答案
Redis 失败/连接断开
在这种情况下,redis 在您的进程保持事件状态时关闭或断开连接。为确保进程获得良好的连接,请在 jedis 连接/池配置中使用 testOnBorrow=true
。 Jedis 会在使用之前用'PING'测试每个连接;如果 redis 没有响应,连接将被丢弃,它将尝试另一个连接。
机器重启/重启(不是redis)
如果应用程序节点失败或重新启动,您的“进程”应该配置为在重新启动时自动重新启动(如果这是您想要的行为),或者有人手动启动它。无论哪种情况,我都希望您的进程在执行任何实际工作之前创建并初始化一个新的 jedis 连接……那么除此之外您还需要什么?
关于redis - 重启后重新连接到 Redis,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18107146/