解决 springBoot 中使用redis一段时间不用再操作超时问题Command timed out

环境

boot 2.0.3

bug

启动项目之后,连续使用redis的情况下没有问题,但是,一段时间不操作redis,再次操作时,就会出现超时问题Command timed out,然后这次请求就失败了,网上说啥的也有,对小白不友好很烦躁!

分析

boot 2.0.3 版本默认使用的时lettuce 连接池,这个东西有bug,所以,jedis不香吗,嗯真香

这里要注意就算你配置了,貌似也不生效,如下

  redis:
    host: REDIS-HOST
    port: REDIS-PORT
    timeout: 6000
    jedis:
      pool:
        min-idle: 10
        max-idle: 20
        max-active: 50

值得注意的是,需要排除这个lettuce 的包。

 <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>

以上,就好了!

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐