You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Redisson客户端指定远程Redis地址却连接localhost问题求助

问题排查与解决方案

核心原因

RedissonAutoConfiguration在创建redissonConnectionFactory Bean时,可能优先采用了Spring Boot默认的Redis配置属性(默认指向localhost),而非你自定义的Redisson配置文件。

具体排查与解决步骤

  • 检查Spring默认Redis配置
    查看你的application.yml或application.properties,即使没显式设置spring.redis.host,Spring Boot也会默认使用localhost作为Redis地址。如果要保留Spring Redis自动配置,需显式设置:

    spring:
      redis:
        host: <my.ip.addr>
        port: 6379
    
  • 排除Spring Redis自动配置
    如果不需要Spring自带的Redis连接相关Bean,可在启动类上排除自动配置类,避免冲突:

    @SpringBootApplication(exclude = {RedisAutoConfiguration.class, RedisRepositoriesAutoConfiguration.class})
    public class YourApplication {
        public static void main(String[] args) {
            SpringApplication.run(YourApplication.class, args);
        }
    }
    
  • 手动创建RedissonConnectionFactory
    编写自定义配置类,基于你的Redisson Config生成连接工厂,确保完全使用自定义配置:

    @Configuration
    public class RedissonCustomConfig {
    
        @Bean
        public RedissonClient redissonClient() throws IOException {
            // 注意修正文件名拼写:redison→redisson,确保配置文件正确加载
            Config config = Config.fromYAML(new File("/redisson-config.yml"));
            return Redisson.create(config);
        }
    
        @Bean
        public RedissonConnectionFactory redissonConnectionFactory(RedissonClient redissonClient) {
            return new RedissonConnectionFactory(redissonClient);
        }
    }
    
  • 验证配置加载正确性
    在初始化RedissonClient的代码中添加日志打印,确认配置是否正确加载了远程IP:

    Config config = Config.fromYAML("/redisson-config.yml");
    System.out.println("Redisson configured address: " + config.getSingleServerConfig().getAddress());
    

    如果输出不是redis://<my.ip.addr>:6379,说明配置文件路径或文件名有误(比如你代码中的redison-config.yml拼写错误),需修正后重新测试。

内容的提问来源于stack exchange,提问作者Vivek Sharma

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 14:05:24