问题

最近接手了一个旧的项目,在服务器上成功运行后想把部分服务在本地启动进行调试,启动过程中出现了一个错误

2021-06-05 17:51:53.776 WARN  org.springframework.boot.actuate.redis.RedisHealthIndicator [AbstractHealthIndicator.java:87] ## Redis health check failed
org.springframework.data.redis.RedisConnectionFailureException: Cannot get Jedis connection; nested exception is redis.clients.jedis.exceptions.
JedisConnectionException: Failed connecting to host localhost:6379at org.springframework.data.redis.connection.jedis.JedisConnectionFactory.fetchJedisConnector(JedisConnectionFactory.java:281)at org.springframework.data.redis.connection.jedis.JedisConnectionFactory.getConnection(JedisConnectionFactory.java:464)

错误信息的主要内容就是Failed connecting to host localhost:6379
关于这个错误网上有一些内容,基本都是在本地部署的redis,解决方案通常是

  • 打开redis服务
  • 关闭redis保护模式

但是在我遇到的场景中,把nacos中所有和redis相关的配置全都指定成服务器的ip地址后,仍然出现了localhost,说明是一个配置的错误,没有把redis服务器的值设置成服务器的ip。

解决方案

最终的解决方法
配置中加入spring.redis.host=服务器ip就可以解决这个问题了。
因为这是一个旧的项目,里面配置项很多,刚开始重新部署的时候只把配置中有的ip全局替换了,没有考虑到原来程序运行的时候一直没有配置redis的ip地址,而是一直使用的缺省值,在项目本地调试的时候就遇到了问题。

排查过程

错误日志中已经写到了
JedisConnectionFactory.fetchJedisConnector(JedisConnectionFactory.java:281)这行代码出现了问题
先打开JedisConnectionFactory看看代码。

这段代码先创建了Jedis对象,再调用connect方法,可以在connect方法上打个断点。

这里很明显,还没有调用connect方法,在创建Jedis对象后host的值已经是localhost了。点进去看看createJedis方法。

这里很明显调用了一个getHostName方法,这个方法返回的应该是localhost,点进去继续看。


这个方法从standaloneConfig对象中取出了hostname的值,而standaloneConfigJedisConnectionFactory的一个对象,在这个对象上打个断点看看这个对象是通过哪个方法进来的。

进入断点后发现是在构造函数中传入了standaloneConfig对象覆盖了默认值,再向上一层,进入了JedisConnectionConfiguration类中,是这个类调用了JedisConnectionFactory的构造方法。

调用的时候直接通过getStandaloneConfig方法取到对象,继续进入。

发现是在properties对象中取到了host的值

properties是在RedisConnectionConfiguration的构造函数中传入的。
点进RedisProerties类中看一下

发现整个过程中host的源头就是spring.redis.host这个配置的值,因为原来拿到的nacos配置文件中没有,加上对redis不太熟悉,就一直没有想到这个问题。不过通过一层一层分析还是找到了原因。

远程Redis服务器 JedisConnectionException: Failed connecting to host localhost:6379 解决方案相关推荐

  1. Java中使用Jedis连接Redis服务端时提示:JedisConnectionException: Failed connecting

    场景 Centos中Redis的下载编译与安装(超详细): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/103967334 Re ...

  2. 查看远程Redis服务器的版本

    查看远程Redis服务器的版本 如何查看远程Redis服务器的版本 作者:chszs,转载需注明.博客主页:http://blog.csdn.net/chszs 如果无远程Redis服务器的SSH访问 ...

  3. 连接远程Redis服务器超时

    连接远程Redis服务器超时 问题 在本地java应用中,连接服务器的Redis失败,提示连接超时.远程服务器上可以登陆,也已经开放相应的端口,但提示连接超时. 解决 1.找到Redis服务启动时的配 ...

  4. 命令链接远程redis服务器

    一.命令行切换到redis-cli.exe目录 二.输入命令:redis-cli.exe -h 服务器ip -p 端口 redis-cli.exe -h 192.168.1.1 -p 6379 三.输 ...

  5. Redis服务器启动之后3个警告信息的解决方案

    今天是年前最后一篇文章了,不想写太多的东西,就写一些有关Redis相关问题的解决方案.当我们启动了Redis服务器之后,会看到3个警告,如果没看到,那是很好的,但是我看到了.看到了就不能不管,所以就好 ...

  6. 【redis】无法链接远程redis服务器,解决办法集合

    ✨编写不易,还希望各位大佬支持一下\textcolor{gray}{编写不易,还希望各位大佬支持一下}编写不易,还希望各位大佬支持一下

  7. 怎么远程访问redis服务器,redis服务器开启远程连接的步骤

    redis服务器开启远程连接的步骤 发布时间:2020-04-09 10:45:05 来源:亿速云 阅读:103 作者:小新 今天小编给大家分享的是redis开启远程连接的步骤,很多人都不太了解,今天 ...

  8. Jenkins自动化构建vue项目然后发布到远程Linux服务器

    部署Jenkins参照另一篇博客: centos7安装Jenkins及其卸载 一.jenkins相关插件的安装 1.安装Publish Over SSH插件用于SSH连接远程的服务器. 登录 jenk ...

  9. 10.Wordpress启用远程redis

    Wordpress启用远程redis 测试系统:CentOS8.5 @redis-server(192.168.99.131) [root@localhost ~]# mount /dev/cdrom ...

  10. redis desktop manager 连接外网redis服务器

    redis desktop manager 连接外网redis服务器 connection name(自己定义)host(内网地址) prot(6379) ssh tunnel remote host ...

最新文章

  1. 一文掌握明年物联网传感器市场!2022中国AIoT产业全景图谱报告新鲜出炉
  2. 嵌入式中的 *(volatile unsigned int *)0x500 解释
  3. Web实时通信,SignalR真香,不用愁了
  4. 商业项目中代码质量是否重要?
  5. 0821Servlet基础
  6. android各种组件的监听器
  7. 报表工具Style Report报表打印功能
  8. vijos 1602
  9. wvs_patcher批量测试网站
  10. cdr2022辅助注册机序列号
  11. 1342764-64-0,Lipoamido-PEG3-alcohol具有lipoamide和羟基端基
  12. 视觉伺服入门第二步:带你从经典论文阅读Visual Servo Control Part II: Advanced Approaches进阶版
  13. Xposed插件开发环境配置
  14. 【脚本】如何恢复Win10图片查看器
  15. **Django介绍 和 MVT 模式 MVC 模式对比**
  16. 向DPMFoam或MPPICFoam求解器中添加源项
  17. WPF中的右键菜单ContextMenu
  18. SSL 3.0 安全漏洞修复方法
  19. Anaconda安装并配置
  20. HPE矛头直指思科 与Arista达成软件定义合作关系及销售协议

热门文章

  1. 3D 世界的钥匙「GitHub 热点速览 v.22.08」
  2. 楼天成,ACRush
  3. 计算机软件资料统计表,幼儿园评估资料参考目录(中心幼儿园)
  4. C语言课程设计---职工工资管理系统
  5. 最详细的Mysql操作手册(一)
  6. 编码原则1-单一职责原则
  7. 最好的Javaweb教程JavaWeb架构演变-动力节点
  8. 9008刷机工具_黔隆科技刷机教程OPPOR11忘记密码免刷机保资料解屏幕锁教程
  9. 123f是什么c语言,123RF博客
  10. MyEclipse10破解详解过程