1717package org .springframework .ai .autoconfigure .vectorstore .redis ;
1818
1919import io .micrometer .observation .ObservationRegistry ;
20+ import redis .clients .jedis .DefaultJedisClientConfig ;
21+ import redis .clients .jedis .HostAndPort ;
22+ import redis .clients .jedis .JedisClientConfig ;
2023import redis .clients .jedis .JedisPooled ;
2124
2225import org .springframework .ai .embedding .BatchingStrategy ;
4043 * @author Christian Tzolov
4144 * @author Eddú Meléndez
4245 * @author Soby Chacko
46+ * @author Jihoon Kim
4347 */
4448@ AutoConfiguration (after = RedisAutoConfiguration .class )
4549@ ConditionalOnClass ({ JedisPooled .class , JedisConnectionFactory .class , RedisVectorStore .class , EmbeddingModel .class })
@@ -60,8 +64,7 @@ public RedisVectorStore vectorStore(EmbeddingModel embeddingModel, RedisVectorSt
6064 ObjectProvider <VectorStoreObservationConvention > customObservationConvention ,
6165 BatchingStrategy batchingStrategy ) {
6266
63- JedisPooled jedisPooled = new JedisPooled (jedisConnectionFactory .getHostName (),
64- jedisConnectionFactory .getPort ());
67+ JedisPooled jedisPooled = this .jedisPooled (jedisConnectionFactory );
6568 return RedisVectorStore .builder (jedisPooled , embeddingModel )
6669 .initializeSchema (properties .isInitializeSchema ())
6770 .observationRegistry (observationRegistry .getIfUnique (() -> ObservationRegistry .NOOP ))
@@ -72,4 +75,19 @@ public RedisVectorStore vectorStore(EmbeddingModel embeddingModel, RedisVectorSt
7275 .build ();
7376 }
7477
78+ private JedisPooled jedisPooled (JedisConnectionFactory jedisConnectionFactory ) {
79+
80+ String host = jedisConnectionFactory .getHostName ();
81+ int port = jedisConnectionFactory .getPort ();
82+
83+ JedisClientConfig clientConfig = DefaultJedisClientConfig .builder ()
84+ .ssl (jedisConnectionFactory .isUseSsl ())
85+ .clientName (jedisConnectionFactory .getClientName ())
86+ .timeoutMillis (jedisConnectionFactory .getTimeout ())
87+ .password (jedisConnectionFactory .getPassword ())
88+ .build ();
89+
90+ return new JedisPooled (new HostAndPort (host , port ), clientConfig );
91+ }
92+
7593}
0 commit comments