异常:Springboot中redis使用lettuce连接池经常连接超时解决

这篇具有很好参考价值的文章主要介绍了异常:Springboot中redis使用lettuce连接池经常连接超时解决。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Springboot中redis使用lettuce连接池经常连接超时解决

环境

Springboot 2.4.4 + mysql 
redis使用 lettuce作连接池

依赖

     <!--springboot中的redis依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
        </dependency>

        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-pool2</artifactId>
        </dependency>

配置

异常:Springboot中redis使用lettuce连接池经常连接超时解决

1. 问题点:项目启动后,一段时间过后redis自动掉线
io.lettuce.core.RedisCommandTimeoutException: Command timed out
2. 问题分析:

这是lettuce-core的实现里,有类似心跳机制的保持长连接方式,不过心跳机制是不停的来回发心跳包直到连接不可用再去被动重新连接,而lettuce的方案是将连接池里处于空闲(idle)状态的client每隔一段时间就主动断开,然后再重新连接。

3.解决方案如下:

-springboot2.3以上版本,可添加配置解决。
异常:Springboot中redis使用lettuce连接池经常连接超时解决

  • 或者排除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>


结果:redis正常

异常:Springboot中redis使用lettuce连接池经常连接超时解决文章来源地址https://www.toymoban.com/news/detail-505160.html

到了这里,关于异常:Springboot中redis使用lettuce连接池经常连接超时解决的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • springboot的 spring.redis.lettuce的max-active、max-idle、min-idle的搭配

    在Spring Boot中,使用Lettuce作为Redis客户端是一种常见的选择。Lettuce是一个高性能、可扩展的异步Redis客户端。下面是关于 application.yml 配置文件中 spring.redis.lettuce 的一些配置: 配置项的含义: spring.redis.host 和 spring.redis.port :配置Redis服务器的主机名和端口号。 spring.redis.dat

    2024年02月12日
    浏览(36)
  • Spring Boot Starter Data Redis使用Lettuce客户端报错:NOAUTH Authentication required

    Spring Boot版本升级为:2.6.14 redis依赖: redis配置不变,还是带password的: 项目启动后,获取redis连接时,报错:NOAUTH Authentication required spring-boot-starer-data-redis支持使用Jedis和Lettuce作为redis客户端,如果配置不指定则默认使用Lettuce。 不管是Lettuce还是还是Jedis,核心是构建RedisCo

    2024年01月25日
    浏览(49)
  • springboot websocket 配置超时关闭连接

    客户端与服务器在用websocket通信的时候,如果客户端突然关闭网络或者直接关机,此时路由与服务器之间的链接还存在 若不给该客户端发信息,除非路由器重启,否则这个链接会一直存在,服务器会一直认为该链接存在,后果就是随着大连无用的tcp连接积累,服务器会报so

    2024年02月11日
    浏览(48)
  • lettuce.core.RedisCommandTimeoutException: Command timed out after 1 minute(s) timeout 60000超时问题

    有一台服务器 java程序不定期会出现Redis command timed out; nested exception is io.lettuce.core.RedisCommandTimeoutException: Command timed out after 1 minute(s) 错误,导致应用出现 timeout 60000 错误,重启应用后,问题修复,但还是会不定期出现该问题。查看应用日志,发现有如下错误: 出现timeout 600

    2024年02月16日
    浏览(50)
  • 【Spring Boot 3】【Redis】集成Lettuce

    软件开发是一门实践性科学,对大多数人来说,学习一种新技术不是一开始就去深究其原理,而是先从做出一个可工作的DEMO入手。但在我个人学习和工作经历中,每次学习新技术总是要花费或多或少的时间、检索不止一篇资料才能得出一个可工作的DEMO,这占用了我大量的时

    2024年01月18日
    浏览(44)
  • springboot配置http连接超时时间主动断开避免产生大量close_wait

    与客户端联调接口,通信方式使用http连接,客户端设置了发起请求后10s就断开连接,然后果不其然,我在服务端这边收到了大量的close_wait状态,最终导致接口不可用。 close_wait产生的原因就是客户端断开了连接但是没有发FIN给到服务端,所以服务端不知道还一直在跟客户端通

    2024年02月16日
    浏览(56)
  • 若依框架 - 短时间内断开连接,重复跳转至登录界面问题的解决方法(docker 与 redis)、令牌超时问题

    在很短的时间内不去操作系统,就会自动提示, 登录状态已过期,您可以继续留在该页面,或者重新登录 ,所以老是要跳转到登录界面,这一点很麻烦,非常影响用户体验。 令牌设置超时时间,过于短暂; redis 服务的启动配置文件有问题,没有配置密码登录,而是默认配置

    2024年02月13日
    浏览(31)
  • Spring Data Redis切换底层Jedis 和 Lettuce实现

    Spring Data Redis是 Spring Data 系列的一部分,它提供了Spring应用程序对Redis的轻松配置和使用。它不仅提供了对Redis操作的高级抽象,还支持Jedis和Lettuce两种连接方式。 可通过简单的配置就能连接Redis,并且可以切换Jedis和Lettuce两个连接方式。下面先来看看我们该如何使用它。 使

    2024年02月05日
    浏览(36)
  • [前车之鉴] SpringBoot原生使用Hikari数据连接池升级到动态多数据源的深坑解决方案 & RocketMQ吞掉异常问题排查

    当前业务场景我们使用原生SpringBoot整合Hikari数据源连接池提供服务,但是近期业务迭代需要使用动态多数据源,很自然想到dynamic-source,结果一系列惨案离奇发生。。。 原生SpringBoot整合HikariCp数据源连接池配置【这个是没问题的配置】 而升级后的动态多数据源配置如下:【

    2024年02月01日
    浏览(51)
  • 解决Redis连接问题:Caused by: io.netty.channel的异常

    在使用Redis时,有时候会遇到连接问题,其中一个常见的异常是Caused by: io.netty.channel异常。这个异常通常意味着与Redis服务器之间的网络通信发生了问题。本篇博客将深入讨论这个异常的可能原因和解决方法。 Caused by: io.netty.channel异常通常是由于以下原因引起的: 网络问题:

    2024年02月11日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包