redis出现Unable to connect to localhost/<unresolved>:6379 报错如何解决?

ppylox
·4/1/2023·0 阅读
AI 摘要模型根据正文自动生成,仅供参考

项目升级至Java 17和Spring Boot 3.X后,Redis报错“Unable to connect to localhost/<unresolved>:6379”。注释bind地址无效。原因是新版redis-starter配置结构变更:原`spring.redis`下的host、port、password需移至`spring.data.redis`下。按新格式配置后问题解决。

最近在计划将项目升级到java17,之前的项目是基于java11开发的,升级到java17后还是有部分功能不兼容,需要改成java17的语法,比如很常用的请求方法的包名改成了jakarta

 import jakarta.servlet.http.HttpServletRequest;

除了java版本升级到17,springboot的版本也升级到了3.X版本,其中包括security等都同步做了升级,其中security最新版本跟之前的实现也稍有不同。

在所有功能都升级完成后,将项目打包放到服务器上运行后,发现redis提示Unable to connect to localhost/<unresolved>:6379

在网上看到这个问题的解决方案是需要将redis配置文件中bind 地址注释掉,这样就允许任何地址访问。

按照这个方法改完配置后发现问题并未解决,仍然提示上述错误。

最后偶然发现一篇文章提到了这个问题,原来是最新版本的redis-stater中配置文件有所变动。老版本的stater配置文件中配置redis如下yml格式,redis字段是在spring下面。

spring:\n  main:\n    # 2.6.0后关闭了循环引用,需要开启,否则会启动报错\n    allow-circular-references: true\n  application:\n    name: manage-service2\n  redis:\n    host: 106.52.xx.xx\n    port: 6379\n    password: www.dsiab.com

然而新的stater中的配置文件结构发生了变化,redis字段放到了data下面。


spring:\n  main:\n    # 2.6.0后关闭了循环引用,需要开启,否则会启动报错\n    allow-circular-references: true\n  application:\n    name: manage-service\n  data:\n    redis:\n      host: 106.52.xx.xx\n      port: 6379\n      password: www.dsiab.com

按照这个格式配置后终于解决了这问题,祝大家好运。

相关文章

评论 (0)

暂无评论,来写第一条吧