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

Spring-AI如何通过RedisAutoConfiguration连接Redis VectorStore?认证异常求助

问题解决:Redis VectorStore 认证失败异常处理

问题描述

根据Spring AI相关更新,需改用RedisAutoConfiguration替代RedisVectorStoreAutoConfiguration连接Redis VectorStore,但配置Redis连接信息后,持续抛出redis.clients.jedis.exceptions.JedisDataException: NOAUTH Authentication required异常。已确认host、port、password配置正确,且更换Spring AI版本(从1.0.0-M1到1.0.0-SNAPSHOT)后问题仍存在。

当前Redis配置

spring:
  ai:
    openai:
      api-key: ${OPENAI_API_KEY}
  data:
    redis:
      host: ${REDIS_HOST}
      port: ${REDIS_PORT}
      password: ${REDIS_PASSWORD}
  profiles:
    include: SECRET-KEYS

异常信息

redis.clients.jedis.exceptions.JedisDataException: NOAUTH Authentication required
    at redis.clients.jedis.Protocol.processError(Protocol.java:105) ~[jedis-5.0.2.jar:na]
    at redis.clients.jedis.Protocol.process(Protocol.java:162) ~[jedis-5.0.2.jar:na]
    at redis.clients.jedis.Protocol.read(Protocol.java:221) ~[jedis-5.0.2.jar:na]
...

可能的解决方案

  • 1. 补充Spring AI专属Redis配置

使用RedisAutoConfiguration时,Redis VectorStore可能优先读取spring.ai.vectorstore.redis前缀的配置,而非通用的spring.data.redis。需添加专属配置确保认证信息被正确加载:

spring:
  ai:
    openai:
      api-key: ${OPENAI_API_KEY}
    vectorstore:
      redis:
        host: ${REDIS_HOST}
        port: ${REDIS_PORT}
        password: ${REDIS_PASSWORD}
  data:
    redis:
      host: ${REDIS_HOST}
      port: ${REDIS_PORT}
      password: ${REDIS_PASSWORD}
  profiles:
    include: SECRET-KEYS
  • 2. 手动配置Redis连接工厂

若项目存在自定义RedisConnectionFactory Bean,需手动注入认证信息避免配置绑定失效:

@Configuration
public class RedisConfig {

    @Value("${REDIS_HOST}")
    private String host;

    @Value("${REDIS_PORT}")
    private int port;

    @Value("${REDIS_PASSWORD}")
    private String password;

    @Bean
    public JedisConnectionFactory jedisConnectionFactory() {
        RedisStandaloneConfiguration config = new RedisStandaloneConfiguration(host, port);
        config.setPassword(RedisPassword.of(password));
        return new JedisConnectionFactory(config);
    }

    @Bean
    public RedisTemplate<String, Object> redisTemplate() {
        RedisTemplate<String, Object> template = new RedisTemplate<>();
        template.setConnectionFactory(jedisConnectionFactory());
        return template;
    }
}
  • 3. 验证Redis服务器认证配置

用redis-cli直接连接Redis服务器,确认密码有效性:

redis-cli -h <REDIS_HOST> -p <REDIS_PORT>
auth <REDIS_PASSWORD>

若auth命令执行失败,需核对Redis服务器的requirepass配置是否与应用密码一致。

  • 4. 排查配置文件加载问题

检查SECRET-KEYS配置文件是否正常加载,启动日志中搜索REDIS_PASSWORD字段,确认变量值是否符合预期。

内容的提问来源于stack exchange,提问作者이진성

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 13:27:13