新闻详情

新闻详情

首页 / 资讯中心 / 详情

Redis 连接断开后的自动重连操作

发布时间:2026/9/30 12:04:41来源:尧图网络
Redis 连接断开后的自动重连操作
1 日志解析这不是 bug而是Lettuce在进行 Redis 连接断开后的自动重连操作。[2025-12-1817:45:46:088]... INFO... Reconnecting, last destination was140.x.x.x/140.x.x.x:56750[2025-12-1817:45:46:095]... INFO... Reconnected to140.x.x.x:56750Lettuce检测到与 Redis 的连接断开了自动尝试重新连接Reconnecting成功重新建立连接Reconnected整个过程是 Lettuce 的正常容错机制Lettuce 的ConnectionWatchdog就每 5 分钟重连一次这是INFO 级别、心跳空闲超时timeout: 300后的正常重连不是 ERROR。真正隐患是它每 5 分钟准时出现说明连接一直处于连上→空闲断开→重连的循环。我的场景是因为服务器应用连的 db2那里空空如也。应用启动时把 Redis 写入链路关了v2x.process.enabled: false又对着空库操作Lettuce 的ConnectionWatchdog就每 5 分钟重连一次刷那串 INFO 日志。2 为啥会断开连接虽重连成功但也应排查为什么连接会断开。常见原因2.1 Redis 服务端主动断开Redis 配置了timeout空闲连接超时默认是 0不超时但如果设为比如300秒空闲连接会被关闭。检查 Redis 配置redis-cli CONFIG GETtimeout2.2 网络问题中间有防火墙、NAT、负载均衡器如云厂商 SLB设置了TCP 空闲超时例如阿里云 SLB 默认 900 秒。如果客户端和 Redis 之间长时间无通信中间设备会断开 TCP 连接。2.3 Redis 重启或故障转移Redis 实例重启、主从切换、哨兵切换等会导致连接中断。2.4 客户端资源回收应用长时间未使用 Redis 连接连接池可能被清理但 Lettuce 默认是长连接不太可能。3 如何避免频繁重连在 Spring Boot 中可以通过启用 TCP Keepalive 和 Lettuce 心跳来保持连接活跃。方法 1配置application.ymlspring:redis:host:140.x.x.xport:xxxlettuce:pool:max-active:8max-idle:8min-idle:0# 启用连接健康检查可选shutdown-timeout:100ms# 启用 TCP keep-aliveclient-name:my-app⚠️ 注意spring.redis.lettuce不直接支持keep-alive需要通过自定义LettuceClientConfiguration。方法 2推荐自定义 Lettuce 连接配置ConfigurationpublicclassRedisConfig{BeanpublicLettuceConnectionFactoryredisConnectionFactory(){// 启用 TCP keep-alive 和连接健康检查SocketOptionssocketOptionsSocketOptions.builder().keepAlive(true)// 启用 TCP keep-alive.tcpNoDelay(true).build();ClientOptionsclientOptionsClientOptions.builder().socketOptions(socketOptions).build();LettuceClientConfigurationclientConfigLettuceClientConfiguration.builder().clientOptions(clientOptions).build();returnnewLettuceConnectionFactory(redisStandaloneConfiguration(),clientConfig);}// 你的 Redis 配置host/portprivateRedisStandaloneConfigurationredisStandaloneConfiguration(){RedisStandaloneConfigurationconfignewRedisStandaloneConfiguration();config.setHostName(140.x.x.x);config.setPort(56750);returnconfig;}}4 其他建议检查 Redis 服务器负载是否因 OOM、CPU 打满导致连接断开查看 Redis 日志是否有Client closed connection或Timeout相关记录监控连接数redis-cli info clients查看connected_clients是否突增突降。云厂商注意云 Redis 实例通常有连接空闲超时策略建议设置keep-alive。5 总结问题结论这是 bug 吗不是是 Lettuce 正常重连机制需要处理吗建议排查断连原因 启用keep-alive避免频繁重连影响业务吗如果重连很快毫秒级通常无感知但频繁重连可能影响性能生产务必配置TCP keep-alive和合理的连接池参数避免因中间网络设备超时导致连接断开。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

CCF GESP Python 5级真题解析:BFS、二叉树与动态规划备考指南 2026/9/30 12:52:02

CCF GESP Python 5级真题解析:BFS、二叉树与动态规划备考指南

2024年12月那场GESP认证考完,我在考场外等学生,第一个冲出来的孩子开口不是“考得好不好”,而是“老师,第三题我用BFS但是忘了标记起点,会不会崩”。那一瞬间我就知道,Python 5级这个级别,已经彻…

阅读更多 →
Unity 2D角色移动原理:输入系统与Rigidbody2D协同详解 2026/9/30 12:52:02

Unity 2D角色移动原理:输入系统与Rigidbody2D协同详解

1. 这不是“几行代码”的魔术,而是理解Unity输入系统与物理引擎协同逻辑的起点你点开这个标题,大概率是刚在B站或知乎刷到某个“3分钟学会2D角色移动”的视频,心里想着:“终于能绕过那些枯燥的官方文档了。”但现实很快会给你一记…

阅读更多 →
【集成电路LM2576系列】工业控制的高性能降压器 2026/9/30 12:52:02

【集成电路LM2576系列】工业控制的高性能降压器

今天我们要推荐的是DC-DC电源芯片LM2576系列!如果您正在寻找一个既可靠又高效的电源管理解决方案,那么请不要错过这篇文章!作为专为工业控制、新能源、汽车电子等严苛场景打造的降压芯片,LM2576系列凭借宽输入兼容、高输出精度、极…

阅读更多 →
一图读懂EverRoom核心概念:Evidence、Memory、Context Room与Context Docs 2026/9/30 12:52:02

一图读懂EverRoom核心概念:Evidence、Memory、Context Room与Context Docs

一图读懂EverRoom核心概念:Evidence、Memory、Context Room与Context Docs 【免费下载链接】EverRoom EverRoom - A workspace that remembers your projects, decisions, and sources. 项目地址: https://gitcode.com/gh_mirrors/ev/EverRoom EverRoom 是一…

阅读更多 →
香港科技大学工学院2027FALL研究生项目招生宣讲会-西安电子科技大学专场 2026/9/30 12:51:56

香港科技大学工学院2027FALL研究生项目招生宣讲会-西安电子科技大学专场

时间:2026年10月12日(星期一)19:00 地点:西安电子科技大学长安校区A楼105 港科大《QS 2027》全球第 33 位|工程学 QS 连续 16 年全港第 1 授课型 TPG(MSc):18 个热门硕士课程&…

阅读更多 →
从零搭建AI工程能力:数据管道、训练与服务化部署实战 2026/9/30 12:51:48

从零搭建AI工程能力:数据管道、训练与服务化部署实战

从零搭建AI工程能力这件事,我前前后后折腾过好几轮。最早的时候我也走过弯路——买了一堆讲Transformer原理的书,把注意力机制的公式推了一遍又一遍,结果真到了要上线一个模型服务的时候,连推理延迟怎么压、显存怎么省、请求怎么排…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉