sql >> Base de Datos >  >> NoSQL >> Redis

SpringBoot Elasticache JedisMovedDataException:MOVIDO

Está ejecutando su Elasticache en modo Redis Cluster (solo Redis Cluster responde con MOVED ) pero la fábrica de conexiones está configurada en modo independiente.

Spring Boot puede configurar automáticamente todas las cosas que ha configurado manualmente para usted. Básicamente, elimine su CacheConfiguration class (o al menos eliminar la mayor parte del código):

@Configuration
public class CacheConfiguration {

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

Y luego configure las siguientes propiedades en su application.properties archivo:

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

Spring Boot carga application.properties de forma predeterminada y la configuración automática de Redis configura un RedisTemplate<Object, Object> frijol por defecto. La especialización de beans es un caso de uso válido:no duplique lo que ya proporciona la configuración automática, especialmente si desea lograr lo que hace la configuración automática.

Véase también:

  • Propiedades comunes de la aplicación
  • Configuración externalizada