diff --git a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/redis/RedisVectorStoreAutoConfiguration.java b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/redis/RedisVectorStoreAutoConfiguration.java index 9b318767178..ec5635997bd 100644 --- a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/redis/RedisVectorStoreAutoConfiguration.java +++ b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/redis/RedisVectorStoreAutoConfiguration.java @@ -17,6 +17,9 @@ package org.springframework.ai.autoconfigure.vectorstore.redis; import io.micrometer.observation.ObservationRegistry; +import redis.clients.jedis.DefaultJedisClientConfig; +import redis.clients.jedis.HostAndPort; +import redis.clients.jedis.JedisClientConfig; import redis.clients.jedis.JedisPooled; import org.springframework.ai.embedding.BatchingStrategy; @@ -40,6 +43,7 @@ * @author Christian Tzolov * @author EddĂș MelĂ©ndez * @author Soby Chacko + * @author Jihoon Kim */ @AutoConfiguration(after = RedisAutoConfiguration.class) @ConditionalOnClass({ JedisPooled.class, JedisConnectionFactory.class, RedisVectorStore.class, EmbeddingModel.class }) @@ -60,8 +64,7 @@ public RedisVectorStore vectorStore(EmbeddingModel embeddingModel, RedisVectorSt ObjectProvider customObservationConvention, BatchingStrategy batchingStrategy) { - JedisPooled jedisPooled = new JedisPooled(jedisConnectionFactory.getHostName(), - jedisConnectionFactory.getPort()); + JedisPooled jedisPooled = this.jedisPooled(jedisConnectionFactory); return RedisVectorStore.builder(jedisPooled, embeddingModel) .initializeSchema(properties.isInitializeSchema()) .observationRegistry(observationRegistry.getIfUnique(() -> ObservationRegistry.NOOP)) @@ -72,4 +75,19 @@ public RedisVectorStore vectorStore(EmbeddingModel embeddingModel, RedisVectorSt .build(); } + private JedisPooled jedisPooled(JedisConnectionFactory jedisConnectionFactory) { + + String host = jedisConnectionFactory.getHostName(); + int port = jedisConnectionFactory.getPort(); + + JedisClientConfig clientConfig = DefaultJedisClientConfig.builder() + .ssl(jedisConnectionFactory.isUseSsl()) + .clientName(jedisConnectionFactory.getClientName()) + .timeoutMillis(jedisConnectionFactory.getTimeout()) + .password(jedisConnectionFactory.getPassword()) + .build(); + + return new JedisPooled(new HostAndPort(host, port), clientConfig); + } + }