Redis
 sql >> Database >  >> NoSQL >> Redis

SpringBoot Elasticache JedisMovedDataException:MOVED

Stai eseguendo Elasticache in modalità Redis Cluster (solo Redis Cluster risponde con MOVED ) ma la factory di connessione è configurata in modalità standalone.

Spring Boot può configurare automaticamente tutte le cose che hai impostato manualmente per te. Fondamentalmente, rimuovi il tuo CacheConfiguration class (o almeno rimuovere la maggior parte del codice):

@Configuration
public class CacheConfiguration {

  @Bean
  public RedisTemplate<String, Company> redisTemplate(RedisConnectionFactory connectionFactory) {
      RedisTemplate<String, Company> template = new RedisTemplate();
      template.setConnectionFactory(connectionFactory);
      return template;
  }
}

E quindi configura le seguenti proprietà nel tuo application.properties file:

spring.redis.cluster.nodes=<node_host>:<port> # Comma-separated list of "host:port" pairs to bootstrap from.

Spring Boot carica application.properties per impostazione predefinita e la configurazione automatica di Redis configura un RedisTemplate<Object, Object> fagiolo per impostazione predefinita. La specializzazione dei bean è un caso d'uso valido:non duplicare ciò che è già fornito dalla configurazione automatica, soprattutto se vuoi ottenere ciò che fa la configurazione automatica.

Vedi anche:

  • Proprietà comuni dell'applicazione
  • Configurazione esternalizzata