当前位置: 首页 > news >正文

springboot整合Redis后间歇性io.lettuce.core.RedisCommandTimeoutException

在springboot中引入spring-boot-starter-data-redis依赖时,默认使用的时Lettuce
产生这种问题的原因有如下两点:
1、Lettuce 自适应拓扑刷新(Adaptive updates)与定时拓扑刷新(Periodic updates) 是默认关闭的。
2、项目用了k8s做docker容器化部署,但是k8s有设置空闲连接超时就断开,所以当你从连接池拿到被断开的连接时就会报错。

springboot2.3以上版本,可添加配置解决。

    lettuce:cluster:refresh:adaptive: trueperiod: 20

每次链接都进行自动校验

@Component
@Slf4j
public class LettuceConnectionValidConfig implements InitializingBean {@Autowiredprivate RedisConnectionFactory redisConnectionFactory;@Overridepublic void afterPropertiesSet() throws Exception {if(redisConnectionFactory instanceof LettuceConnectionFactory){LettuceConnectionFactory c=(LettuceConnectionFactory)redisConnectionFactory;c.setValidateConnection(true);}}
}

定时任务

@Component
@Slf4j
public class LettuceConnectionValidTask   {@Autowiredprivate RedisConnectionFactory redisConnectionFactory;@Scheduled(cron="0/2 * * * * ?")public void task() {if(redisConnectionFactory instanceof LettuceConnectionFactory){LettuceConnectionFactory c=(LettuceConnectionFactory)redisConnectionFactory;c.validateConnection();}}
}

排除lettuce,采用jedis。

		<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId><exclusions><exclusion><groupId>io.lettuce</groupId><artifactId>lettuce-core</artifactId></exclusion></exclusions></dependency><dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId></dependency>
http://www.lryc.cn/news/228624.html

相关文章:

  • 基于springboot+vue的学生毕业离校信息网站
  • 基于C#+WPF编写的调用讯飞星火大模型工具
  • 科普测量开关电源输出波形的三种方法及电源波形自动化测试步骤
  • 【优化版】DOSBox及常用汇编工具的详细安装教程
  • 【Devchat 插件】创建一个GUI应用程序,使用Python进行加密和解密
  • 运行pytest时,给出警告 PytestConfigWarning: Unknown config option: result_log
  • 初始MySQL(五)(自我复制数据,合并查询,外连接,MySQL约束:主键,not null,unique,foreign key)
  • ssh秘钥登录
  • Vue3+NodeJS 接入文心一言, 发布一个 VSCode 大模型问答插件
  • VUE element组件生成的全选框如何获取值
  • 第三章:代码块
  • javaEE案例,前后端交互,计算机和用户登录
  • 安卓学习记录
  • gradle 使用记录
  • 电源基础元件
  • [RK-Linux] updateEngine工具使用以及代码分析
  • MySQL | 数据库的表的增删改查【进阶】
  • 爱剪辑如何将视频旋转90度,详细操作流程
  • 三国杀中的概率学问题3——王荣
  • Linux - 实现一个简单的 shell
  • 不同优化器的应用
  • 学习网络编程No.9【应用层协议之HTTPS】
  • PSP - 蛋白质复合物结构预测 Template Pair 特征 Mask 可视化
  • RK3568开发笔记-amixer开机设置音量异常
  • STM32两轮平衡小车原理详解(开源)
  • 区间内的真素数问题(C#)
  • eclipse安装lombok插件
  • 故障演练 | 微服务架构下如何做好故障演练
  • Python爬虫-获取汽车之家车家号
  • No195.精选前端面试题,享受每天的挑战和学习