From 052cddfb42fb698907c298057c6bcbded3e37aa1 Mon Sep 17 00:00:00 2001 From: Ryan Jones Date: Wed, 5 Nov 2025 11:24:31 -0700 Subject: [PATCH] =?UTF-8?q?fix:=20=F0=9F=90=9B=20Redis=20Cluster=20Refresh?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Refresh the redis cluster connections so if a new host is added or removed the list is refreshed --- .../mx/path/service/facility/store/redis/RedisStore.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/store-redis/src/main/java/com/mx/path/service/facility/store/redis/RedisStore.java b/store-redis/src/main/java/com/mx/path/service/facility/store/redis/RedisStore.java index 1929310..0badc3e 100644 --- a/store-redis/src/main/java/com/mx/path/service/facility/store/redis/RedisStore.java +++ b/store-redis/src/main/java/com/mx/path/service/facility/store/redis/RedisStore.java @@ -1,9 +1,12 @@ package com.mx.path.service.facility.store.redis; import java.io.File; +import java.time.Duration; import java.util.Set; +import java.util.concurrent.TimeUnit; import java.util.function.Function; +import io.lettuce.core.cluster.ClusterTopologyRefreshOptions; import lombok.Getter; import com.mx.path.core.common.configuration.Configuration; @@ -223,10 +226,15 @@ final synchronized StatefulRedisClusterConnection buildClusterCo .build(); RedisClusterClient redisClusterClient = RedisClusterClient.create(resources, redisUri); + ClusterTopologyRefreshOptions topologyRefreshOptions = ClusterTopologyRefreshOptions.builder() + .enablePeriodicRefresh(Duration.ofMinutes(3)) + .enableAllAdaptiveRefreshTriggers() + .build(); SslOptions sslOptions = SslOptions.builder() .keyManager(new File(configuration.getCertFile()), new File(configuration.getKeyFile()), configuration.getPasswordFile().toCharArray()) .build(); ClusterClientOptions clusterClientOptions = ClusterClientOptions.builder() + .topologyRefreshOptions(topologyRefreshOptions) .sslOptions(sslOptions).build(); redisClusterClient.setOptions(clusterClientOptions);